You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@struts.apache.org by Apache Wiki <wi...@apache.org> on 2005/11/15 18:57:58 UTC
[Struts Wiki] Update of "StrutsMaintenanceSvn" by James Mitchell
Dear Wiki user,
You have subscribed to a wiki page or wiki category on "Struts Wiki" for change notification.
The following page has been changed by James Mitchell:
http://wiki.apache.org/struts/StrutsMaintenanceSvn
The comment on the change is:
Adding a few release specific svn usage tips
------------------------------------------------------------------------------
==== Updating the list of subprojects for the "current" checkout ====
+ The Struts code base takes advantage of a feature of Subversion termed "externals". The concept is similar to how a symbolic link works in the *nix worlds. With Struts, you typically checkout the source code by getting https://svn.apache.org/repos/asf/struts/current/, yet, if you look at this url with a browser, you'll only see 1 file. That's because of our use of svn:externals.
- * export set SVN_EDITOR=vi (or emacs or whatever)
- * cd (to where the root of your checkout is)
- * the "." is not a typo - that's how you tell it to edit the svn:external props
- * it's basically a config file
- * if you do "svn commit", (without specifying a commit message), you'll get the same forced vi display
- * not sure if cvs does the same
- * it's all in the online svn handbook -http://svnbook.red-bean.com/svnbook-1.1/
+ (All of this is in the online svn handbook -http://svnbook.red-bean.com/svnbook-1.1/)
+
+ Change directories to where the root of your checkout is.
+ {{{
+ $ cd path/to/svn/struts/checkout
+ }}}
+
+ Ensure you have an environment variable setup for SVN_EDITOR.
+ {{{
+ $ set
+ ...
+ ... (snip'd)
+ ...
+ SHELLOPTS=braceexpand:emacs:hashall:histexpand:history:interactive-comments:monitor
+ SHLVL=1
+ SVN_EDITOR=vi <=== must have this (or emacs or vim or ??)
+ TERM=xterm-color
+ TERM_PROGRAM=Apple_Terminal
+ ...
+ ...
+ }}}
+
+ If you don't have it, set it.
+ {{{
+ $ export set SVN_EDITOR=vi (or emacs or vim or whatever)
+ }}}
+
+
+ Now let's edit svn:externals for the root of our checkout.
+ {{{
+ $ svn propedit svn:externals .
+ }}}
+
+ __NOTE__ - the "." is not a typo - that's how you tell it to edit the svn:external props
+
+ (if using vi, it will open up like this)
+
+ {{{
+ apps https://svn.apache.org/repos/asf/struts/apps/trunk
+ bsf https://svn.apache.org/repos/asf/struts/bsf/trunk
+ build https://svn.apache.org/repos/asf/struts/build/trunk
+ core https://svn.apache.org/repos/asf/struts/core/trunk
+ el https://svn.apache.org/repos/asf/struts/el/trunk
+ faces https://svn.apache.org/repos/asf/struts/faces/trunk
+ flow https://svn.apache.org/repos/asf/struts/flow/trunk
+ extras https://svn.apache.org/repos/asf/struts/extras/trunk
+ sandbox https://svn.apache.org/repos/asf/struts/sandbox/trunk
+ site https://svn.apache.org/repos/asf/struts/site/trunk
+ shale https://svn.apache.org/repos/asf/struts/shale/trunk
+ taglib https://svn.apache.org/repos/asf/struts/taglib/trunk
+ tiles https://svn.apache.org/repos/asf/struts/tiles/trunk
+ ~
+ ~
+ ~
+
+ }}}
+
+ Make your changes, save and exit.
+
+ You can check what you've done
+ {{{
+ $ svn diff .
+ }}}
+
+ Check in your changes
+ {{{
+ $ svn commit -m "modified svn:externals for ???" .
+ }}}
+
+
+ ==== Updating svn:externals after tagging a release or branching ====
+
+ This is where you will change/point it to the tagged/branched versions.
+
+ Similar to the above steps, however, you have to checkout and update the tagged/branched versions. Don't worry, you won't have to sit through a bunch of checkouts that eat up your hard disk. We'll use a svn switch to limit recursion of the checkouts.
+
+ Do the steps above for setting up the SVN_EDITOR environment variable.
+
+ {{{
+
+ > cd path/to/svn/struts/checkout/
+ > ll
+ total 23424
+ drwxr-xr-x 23 jmitchel jmitchel 782 Nov 2 11:17 apps
+ drwxr-xr-x 13 jmitchel jmitchel 442 Nov 1 22:39 bsf
+ drwxr-xr-x 21 jmitchel jmitchel 714 Nov 14 11:48 build
+ drwxr-xr-x 22 jmitchel jmitchel 748 Nov 14 12:02 core
+ drwxr-xr-x 15 jmitchel jmitchel 510 Nov 14 11:49 el
+ drwxr-xr-x 9 jmitchel jmitchel 306 Nov 14 11:49 extras
+ drwxr-xr-x 19 jmitchel jmitchel 646 Nov 1 22:39 faces
+ drwxr-xr-x 13 jmitchel jmitchel 442 Nov 14 11:49 flow
+ -rw-r--r-- 1 jmitchel jmitchel 1166 Sep 25 20:04 nightly.sh
+ drwxr-xr-x 8 jmitchel jmitchel 272 Nov 1 22:40 plugins
+ drwxr-xr-x 23 jmitchel jmitchel 782 Nov 14 11:49 sandbox
+ drwxr-xr-x 19 jmitchel jmitchel 646 Nov 3 08:10 shale
+ drwxr-xr-x 10 jmitchel jmitchel 340 Nov 1 22:40 site
+ drwxr-xr-x 23 jmitchel jmitchel 782 Nov 14 11:50 taglib
+ drwxr-xr-x 11 jmitchel jmitchel 374 Nov 14 11:50 tiles
+
+ }}}
+
+ __IMPORTANT__ - for each subproject that is being tagged/released, do the following:
+
+ (I suppose if we do this enough, this could made into a script, the below is an example for 'core')
+
+ {{{
+ $ svn copy https://svn.apache.org/repos/asf/struts/core/trunk \
+ https://svn.apache.org/repos/asf/struts/core/tags/STRUTS_CORE_1_3_0 \
+ -m "Tagging the 1.3.0 release."
+
+ }}}
+
+ Ok, now that we've tagged it, we have to checkout this tag to modify the svn:externals
+
+ {{{
+ $ mkdir tmp-struts
+ $ cd tmp-struts
+ $ svn co -N https://svn.apache.org/repos/asf/struts/core/tags/STRUTS_CORE_1_3_0 struts-core-1.3.0-branch
+ }}}
+
+ (*note the "-N" switch above forces svn not to recurse,
+ you don't want everything if you are simply going to fix svn:externals)
+
+ {{{
+ $ cd struts-core-1.3.0-branch
+ $ svn propedit svn:externals . <-- don't forget the "."
+ }}}
+
+ (vi will open up like this)
+
+ {{{
+ apps https://svn.apache.org/repos/asf/struts/apps/trunk
+ bsf https://svn.apache.org/repos/asf/struts/bsf/trunk
+ build https://svn.apache.org/repos/asf/struts/build/trunk
+ core https://svn.apache.org/repos/asf/struts/core/trunk
+ el https://svn.apache.org/repos/asf/struts/el/trunk
+ faces https://svn.apache.org/repos/asf/struts/faces/trunk
+ flow https://svn.apache.org/repos/asf/struts/flow/trunk
+ extras https://svn.apache.org/repos/asf/struts/extras/trunk
+ sandbox https://svn.apache.org/repos/asf/struts/sandbox/trunk
+ site https://svn.apache.org/repos/asf/struts/site/trunk
+ shale https://svn.apache.org/repos/asf/struts/shale/trunk
+ taglib https://svn.apache.org/repos/asf/struts/taglib/trunk
+ tiles https://svn.apache.org/repos/asf/struts/tiles/trunk
+ ~
+ ~
+ ~
+ }}}
+
+
+ Change these to point to the tagged/branched versions. Doing 'svn diff .' would look something like this:
+
+ {{{
+ - core https://svn.apache.org/repos/asf/struts/core/trunk
+ + core https://svn.apache.org/repos/asf/struts/core/tags/STRUTS_CORE_1_3_0
+ }}}
+
+ Check it in (again, don't forget the "." at the end)
+ {{{
+ $ svn commit -m "Change svn:externals to point to tags/STRUTS_CORE_1_3_0" .
+ }}}
+
+ WAIT! We're not done yet, we need to do the above for each project that uses a shared svn:externals build/.
+
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@struts.apache.org
For additional commands, e-mail: dev-help@struts.apache.org