Fix broken links and update information in the scons.org Development page.
authorstevenknight <stevenknight@fdb21ef1-2011-0410-befe-b5e4ea1792b1>
Sun, 6 Aug 2006 23:19:53 +0000 (23:19 +0000)
committerstevenknight <stevenknight@fdb21ef1-2011-0410-befe-b5e4ea1792b1>
Sun, 6 Aug 2006 23:19:53 +0000 (23:19 +0000)
Add a Branching page at tigris.org to describe the branch structure
and management.

git-svn-id: http://scons.tigris.org/svn/scons/trunk@1584 fdb21ef1-2011-0410-befe-b5e4ea1792b1

scons.org/dev.php
www/branching.html [new file with mode: 0644]

index 8549d6a49c9eeb2213d39da2d73b6388e22dc3a0..b4fc3b54a948deddd3a90b1510fe6fab2d22651e 100644 (file)
@@ -59,6 +59,9 @@ Subject to change and improvement.
 <div class="linkdesc">
 The <span class="sconslogo">SCons</span> project page at
 <a href="http://www.tigris.org">Tigris.org</a>.
+This is the center of active SCons development,
+hosting the main source code repository
+and issue tracker (bugs, patches, tasks, etc.).
 </div>
 </div>
 
@@ -69,33 +72,30 @@ The <span class="sconslogo">SCons</span> project page at
 <div class="linkdesc">
 The <span class="sconslogo">SCons</span> project page at
 <a href="http://sourceforge.net">SourceForge</a>.
+This is where we used to development, but no longer.
+It's now mostly of historic interest,
+although it's also the origination site for downloads.
 </div>
 </div>
 
 <div class="link">
 <div class="linkname">
-<a href="http://aegis.sourceforge.net/cgi-bin/aegis.cgi?">Aegis&nbsp;repository</a>
+Archive of the latest checked-in source in
+<a href="ftp://ftp.scons.org/scons-src-latest.tar.gz">.tar.gz</a>
+or
+<a href="ftp://ftp.scons.org/scons-src-latest.tar.zip">.zip</a>
 </div>
 <div class="linkdesc">
-The browsable Aegis repository at
-<a href="http://sourceforge.net">SourceForge</a>,
-with listing service provided by Peter Miller,
-the author of Aegis.
-Click through to the <emphasis>scons</emphasis>
-project and branches to get a view of what's going on
-with <span class="sconslogo">SCons</span> development.
-Updated whenever a change is made to <span class="sconslogo">SCons</span>.
-</div>
-</div>
-
-<div class="link">
-<div class="linkname">
-<a href="scons.ae">Current&nbsp;aedist&nbsp;baseline</a>
-</div>
-<div class="linkdesc">
-The Aegis snapshot of the current <span
-class="sconslogo">SCons</span> baseline.
+The whole source tree in easy-to-download form.
 Updated whenever a change is made to <span class="sconslogo">SCons</span>.
+(Note that the source tree in these archives
+is mostly for packaging and testing of SCons;
+consult the <tt>README</tt> file for
+information about how to build packages and
+install SCons from the source tree.
+It's <emphasis>not</emphasis> handled by
+executing <tt>python setup.py</tt> directly
+from this package.)
 </div>
 </div>
 
@@ -106,13 +106,22 @@ Updated whenever a change is made to <span class="sconslogo">SCons</span>.
 <div class="linkdesc">
 The browsable Subversion repository at
 <a href="http://www.tigris.org">Tigris.org</a>.
-Updated whenever a change is made to <span class="sconslogo">SCons</span>.
+Most active development is carried out on subsidiary
+<tt>branches/</tt>.
+The <tt>trunk/</tt> contains whatever approved changes
+have been promoted from the
+See the 
+<a href="http://scons.tigris.org/branching.html">Branching</a></td>
+page at our tigris.org project page
+for a description of the different
+branches
+and how we handle branch management.
 </div>
 </div>
 
 <div class="link">
 <div class="linkname">
-<a href="http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/scons/">CVS&nbsp;repository</a></td>
+<a href="http://scons.cvs.sourceforge.net/scons/">CVS&nbsp;repository</a></td>
 </div>
 <div class="linkdesc">
 The browsable CVS repository at
@@ -136,6 +145,32 @@ as we figured out how to make things easier.
 </div>
 </div>
 
+<div class="link">
+<div class="linkname">
+<a href="http://aegis.sourceforge.net/cgi-bin/aeget">Aegis&nbsp;repository</a>
+</div>
+<div class="linkdesc">
+The browsable Aegis repository at
+<a href="http://sourceforge.net">SourceForge</a>,
+with listing service provided by Peter Miller, the author of Aegis.
+Click through to the <emphasis>scons</emphasis>
+project and branches to get a view of what's going on
+with <span class="sconslogo">SCons</span> development.
+Updated whenever a change is made to <span class="sconslogo">SCons</span>.
+</div>
+</div>
+
+<div class="link">
+<div class="linkname">
+<a href="ftp://ftp.scons.org/scons.ae">Current&nbsp;aedist&nbsp;baseline</a>
+</div>
+<div class="linkdesc">
+The Aegis snapshot of the current <span
+class="sconslogo">SCons</span> baseline.
+Updated whenever a change is made to <span class="sconslogo">SCons</span>.
+</div>
+</div>
+
 <div class="link">
 <div class="linkname">
 <a href="http://www.pcug.org.au/~millerp/aegis/aegis.html">Aegis</a>
diff --git a/www/branching.html b/www/branching.html
new file mode 100644 (file)
index 0000000..904d368
--- /dev/null
@@ -0,0 +1,197 @@
+<html>
+<head>
+<title>SCons Branching and Merging</title>
+</head>
+<body>
+
+<div id="apphead">
+<h1><small>scons</small><br />SCons Branching and Merging</h1>
+</div>
+
+<p>
+This page covers how we handle branching and merging
+in the SCons development tree.
+We'll use
+<a href="http://www.dellroad.org/svnmerge/index">svnmerge</a>
+to keep track of what changes haven't been merged in each direction.
+Some of the concepts and steps below have been
+swiped from a pretty decent
+<a href="http://kenkinder.com/svnmerge/">svnmerge howto</a>
+created by Ken Kinder,
+with liberal help from our Gary Oberbrunner.
+</p>
+
+<div class="h2 app" style="border-left: 0px" id="branches">
+
+<h2>Branches</h2>
+
+<p>
+These are the SCons development branches and their intended uses.
+</p>
+
+<ul>
+
+<li>
+<strong><tt>trunk</tt></strong>
+<p>
+The main code line from which SCons gets released.
+This currently lags patches that the mailing list
+discussions describe as "checked in to Subversion."
+The real latest-and-greatest checked-in source
+containing SK's patches is in
+<tt>branches/core</tt>.
+This is, however, where we check in
+web site changes into the
+<tt>www/</tt> and <tt>scons.org/</tt> subdirectories
+(for the <a href="http://scons.tigris.org/">tigris.org</a>
+and <a href="http://www.scons.org/">scons.org</a>
+web sites, respectively).
+</p>
+</li>
+
+<li>
+<strong><tt>branches/core</tt></strong>
+<p>
+The main development branch for changes to
+the SCons infrastructure.
+This is where SK checks in most of the
+stuff he's working on
+and which gets sent for review to the
+scons-dev mailing list.
+This branch's parent is <tt>trunk</tt>.
+</p>
+</li>
+
+<li>
+<strong><tt>branches/packaging</tt></strong>
+<p>
+Development branch for the packaging work
+that Philipp Scholl is working on
+as a Google Summer of Code project.
+</p>
+</li>
+
+<li>
+<strong><tt>branches/sigrefactor</tt></strong>
+<p>
+Development branch for the Big Signature Refactoring
+that SK has been working on since the last ice age.
+This branch's parent is <tt>branches/core</tt>.
+</p>
+</li>
+
+<li>
+<strong><tt>branches/testing</tt></strong>
+<p>
+A branch for work on the SCons testing infrastructure.
+This branch's parent is <tt>branches/core</tt>.
+Not very active at the moment,
+because most of that work is just going in right in
+<tt>branches/core</tt>.
+</p>
+</li>
+
+<li>
+<strong><tt>branches/tools</tt></strong>
+<p>
+The branch intended for people to check in new features to Tool modules.
+If you want to contribute a change here,
+go see the
+<a href="tools-changes.html">step-by-step instructions</a>
+for doing so.
+This branch's parent is <tt>trunk</tt>.
+</p>
+</li>
+
+</ul>
+
+<p>
+</p>
+
+<h2>How to create a branch off the trunk and initialize it for bi-directional merging</h2>
+
+<p>
+This should take place between any branch and its parent
+to set up to <tt>svnmerge</tt> to handle the
+tracking as we go forward.
+</p>
+
+<pre>
+$ export SVN=http://scons.tigris.org/svn/scons
+$ cd my_working_directory/trunk
+$ svn cp $SVN/trunk $SVN/branches/new_branch
+$ svn commit
+$ cd ..
+$ svn co $SVN/branches/new_branch
+$ cd new_branch
+$ svnmerge init -S $SVN/trunk -f commit.txt
+$ cd ../trunk
+$ svnmerge init -S $SVN/branches/new_branch -f commit.txt
+$ svn commit -F commit.txt && rm commit.txt
+$ cd ../new_branch
+$ svn commit -F commit.txt && rm commit.txt
+</pre>
+
+<p>
+You can actually do both the <tt>svnmerge init</tt>
+and <tt>svn commit</tt> on one branch (in one directory)
+and then do both on the other branch,
+but doing it this way makes both of them end up with
+the same revision number in the <tt>svnmerge</tt> property,
+which is nice and symmetric.
+</p>
+
+<h2>How to merge changes from the trunk to a development branch</h2>
+
+<p>
+This brings a branch in sync with the latest changes that
+have made it into the trunk for release
+(usually by being promoted from other branches,
+we typically don't do work directly on the trunk).
+</p>
+
+<pre>
+$ export SVN=http://scons.tigris.org/svn/scons
+$ cd my_working_directory/new_branch
+$ svn up
+$ svnmerge avail -b -S $SVN/trunk -l
+$ svnmerge merge -b -S $SVN/trunk -f commit.txt
+$ svn resolved .
+$ svn diff
+$ svn commit -F commit.txt && rm commit.txt
+</pre>
+
+<h2>How to merge changes from a development branch to the trunk</h2>
+
+<p>
+This promotes the branch changes into the trunk.
+Note that you should <emphasis>really</emphasis>
+first make sure that your branch has already
+merged any changes from the trunk
+(see previous section) before doing this,
+or else you're likely to overwrite any work
+that's already been submitted up.
+</p>
+
+<pre>
+$ export SVN=http://scons.tigris.org/svn/scons
+$ cd my_working_directory/trunk
+$ svn up
+$ svnmerge avail -b -S $SVN/branches/new_branch -l
+$ svnmerge merge -b -S $SVN/branches/new_branch -f commit.txt
+$ svn resolved .
+$ svn diff
+$ svn commit -F commit.txt && rm commit.txt
+</pre>
+
+<p>
+The <tt>svn resolved .</tt> is there because there will be a
+conflict on the <tt>svnmerge-integrated</tt>property
+that's attached to the directory to track what changes
+have or have not already been merged from the development branch.
+</p>
+
+</div>
+
+</body>
+</html>