[jboss-svn-commits] JBL Code SVN: r12741 - labs/jbossesb/workspace/dbevenius/trunk.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Thu Jun 21 09:23:57 EDT 2007
Author: beve
Date: 2007-06-21 09:23:57 -0400 (Thu, 21 Jun 2007)
New Revision: 12741
Modified:
labs/jbossesb/workspace/dbevenius/trunk/Developer.txt
Log:
Added some guidelines for using svn with the project
Modified: labs/jbossesb/workspace/dbevenius/trunk/Developer.txt
===================================================================
--- labs/jbossesb/workspace/dbevenius/trunk/Developer.txt 2007-06-21 13:03:51 UTC (rev 12740)
+++ labs/jbossesb/workspace/dbevenius/trunk/Developer.txt 2007-06-21 13:23:57 UTC (rev 12741)
@@ -1,13 +1,99 @@
-The structure of the distribution is as follows:
+Project directory structure
+===========================
+product - contains the JBossESB product codebase, including unit tests.
+qa - contains the QA infrastructure for JBossESB.
-product: contains the JBossESB product codebase, including unit tests.
-qa: contains the QA infrastructure for JBossESB.
+IDE
+===
Eclipse developers, there is IDE/JBossIDE directory with the .classpath. Copy that onto the root;
it assumes you have the entire project checked out.
+The product/services directory contains several sub-projects that have their own src and test folders. Each
+of these should be imported as projects in eclipse. A good way to keep different branches separate is to use
+working sets in Eclipse.
+Development
+===========
If you have svn commit rights, then try to do your work within the workspace area first, before
committing it to the trunk. We have a continuous integration build process that runs against the
-trunk whenever it is updated.
+trunk whenever it is updated. See 'Subversion Guidelines' for more information.
+Coding guidelines
+=================
NOTE: you must ensure that all source files have the standard JBoss copyright at the start.
+
+Subversion Guidelines
+=====================
+Simple bug fixes may be performed on the trunk, but anything else should
+be done in a personal workspace. The following text will describe how to
+create a personal workspace, how to merge changes from main into your
+workspace, and also how to merge changes from your workspace into the trunk.
+
+
+ Creating a personal workspace
+ ==============================
+ 1) svn mkdir https://svn.labs.jboss.com/labs/jbossesb/workspace/yourName
+ 2) svn copy https://svn.labs.jboss.com/labs/jbossesb/trunk https://svn.labs.jboss.com/labs/jbossesb/workspace/yourName/branchName
+ 3) svn co https://svn.labs.jboss.com/labs/jbossesb/workspace/yourName/branchName [<some local folder>]
+
+ Step 1 is simply creating a directory where we can store as many workspaces as we want.
+ Step 2 is making a copy of the main trunk to a folder name of your choice (branchName). This step can be repeated whenever
+ you have the need to work on a separate branch, for example if you need to address a bug and do not want to disturb your
+ current workspace with the changes.
+ Step 3 is just a normal checkout of the workspace just copied.
+
+
+ Merging changes from the trunk to your private workspace
+ ========================================================
+ Change directory to the local working copy of your workspace prior to performing the commands below.
+
+ 1) svn merge -r initial_revision:$HEAD https://svn.labs.jboss.com/labs/jbossesb/trunk
+ 2) resolve conflicts, run tests...
+ 3) svn ci -m 'Merge from main initial_revision:$HEAD'
+
+ * initial_revision - is the revision given to your branch by the svn copy command in step 2 of 'Creating a
+ personal workspace'. You can use the command 'svn log --stop-on-copy' from within your working
+ copy to display this revision number.
+ * $HEAD is not a valid value, but specified in this way to indicate that you should use the actual value of
+ the revision you want. This can be found by running 'svn update' from within the workspace copy
+ of the main trunk. This is important, especially in the commit log message.
+
+ Next time you want to update your working branch you can use the log command and grep like this:
+ svn log | grep -A 1 -B 3 'Merge from main'
+ This will display the list of merges that have been preformed previously. The next merge should use
+ the value of the lastest merge's $HEAD value instead of the initial_revison number above.
+
+
+ Merging changes from your private workspace to the trunk
+ ========================================================
+ Change directory to your working copy of the trunk prior to performing the commands below.
+
+ 1) svn merge -r last_merge_commit_revision:$HEAD https://svn.labs.jboss.com/labs/jbossesb/workspace/yourName/branchName
+ 2) Make sure you run the unit tests in the product directory and also the tests in the qa directory.
+ 3) svn commit -m 'Merge from workspace/yourName/branchName last_merge_commit_revision:$HEAD'
+
+ * last_merge_commit_revision - If this is the first time you are merging your workspace branch with main
+ then this will be the revision given to your branch by the svn copy command in step 2 of 'Creating a
+ personal workspace'. You can use the command 'svn log --stop-on-copy' from within your working
+ copy to display this revision number.
+ If this is not the first time you can run the following command from within your copy of the main trunks
+ workspace:
+ svn log | grep -A 1 -B 3 'Merge from workspace/yourName/branchName'
+ This will give you a list all the merges that you have performed, BUT you should not use the revision numbers
+ in this message, but instead the revision number of the commit for the entry, which is specified in the first column
+ and the number is prefixed with an 'r', like r17.
+
+ * $HEAD is not a valid value, but specified in this way to indicate that you should use the actual value of
+ the revision you want. This can be found by running 'svn update' from with the workspace copy
+ of the main trunk. This is important especially in the commit log message.
+
+ Deleting your workspace
+ =======================
+ You can delete branches that you have created when they are no longer needed.
+ 1) svn list https://svn.labs.jboss.com/labs/jbossesb/workspace/yourName
+ 2) svn delete https://svn.labs.jboss.com/labs/jbossesb/workspace/yourName/branchName
+
+ Step 1 is simply listing your branches.
+
+ The branch is missing from the HEAD revision but can be resurrected.
+
More information about the jboss-svn-commits
mailing list