Difference between revisions of "Version control"

From Code::Blocks
 
(2 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
[[Category:Code::Blocks Documentation]]
 
[[Category:Code::Blocks Documentation]]
 
[[Category:Developer Documentation]]
 
[[Category:Developer Documentation]]
 
+
=== Merging from trunk to a branch ===
==== Merging from trunk to a branch ====
 
  
 
Merging from trunk to a branch is done with the following commands:
 
Merging from trunk to a branch is done with the following commands:
  
    cd [path/to/my/branch/copy]
+
cd [path/to/my/branch/copy]
    make sure it is clean and up to date
+
make sure it is clean and up to date
    run: svn merge -r [first revision to be merged]:[last revision to be merged] svn+ssh://yourlogin@svn.berlios.de/svnroot/repos/codeblocks/trunk . (note the trailing dot [with a blank before it])
+
run: svn merge -r [first revision to be merged]:[last revision to be merged] svn+ssh://yourlogin@svn.berlios.de/svnroot/repos/codeblocks/trunk . (note the trailing dot [with a blank before it])
    commit changes with comment "* my_branch: merged with trunk (trunk to my_branch)"
+
commit changes with comment "* my_branch: merged with trunk (trunk to my_branch)"
 
 
  
 
The first revision to be merged is normally the revision of the last merge, the last revision to be merged is normally HEAD, the url has to be fixed to fit your needs.
 
The first revision to be merged is normally the revision of the last merge, the last revision to be merged is normally HEAD, the url has to be fixed to fit your needs.
Line 16: Line 14:
 
Instead of the trailing dot you can use the path to your working copy of the my-branch (if you are not inside its root-folder).
 
Instead of the trailing dot you can use the path to your working copy of the my-branch (if you are not inside its root-folder).
 
To see what will be merged (instead of really doing it), you can use "--dry-run" as for many other svn commands.
 
To see what will be merged (instead of really doing it), you can use "--dry-run" as for many other svn commands.
 +
 +
'''Important note:'''
 +
 +
Never mix changes from a merge with pending changes from the branch. This will result in an immediate loss of the ability to do a SVN re-integrate merge as SVN will never be able to resolve the changes.
 +
 +
=== SVN log entries ===
 +
 +
SVN log entries are written in a uniform system as follows:
 +
 +
; <code>-</code> : Prefixes minor changes: formatting alterations, project file tweaks.
 +
 +
; <code>*</code> : Prefixes major changes: bug fixes, new features.
 +
 +
This is followed by the component (plugin) affected, if not the core (SDK) itself. A colon and the description of what has actually changed is appended. The final entry will look like:
 +
 +
* compiler: allow multiple selection of directories for all operations (copy / delete / move...)

Latest revision as of 20:13, 18 January 2012

Merging from trunk to a branch

Merging from trunk to a branch is done with the following commands:

cd [path/to/my/branch/copy]
make sure it is clean and up to date
run: svn merge -r [first revision to be merged]:[last revision to be merged] svn+ssh://yourlogin@svn.berlios.de/svnroot/repos/codeblocks/trunk . (note the trailing dot [with a blank before it])
commit changes with comment "* my_branch: merged with trunk (trunk to my_branch)"

The first revision to be merged is normally the revision of the last merge, the last revision to be merged is normally HEAD, the url has to be fixed to fit your needs. Instead of the url you can use the root-folder of your working-copy of trunk. Instead of the trailing dot you can use the path to your working copy of the my-branch (if you are not inside its root-folder). To see what will be merged (instead of really doing it), you can use "--dry-run" as for many other svn commands.

Important note:

Never mix changes from a merge with pending changes from the branch. This will result in an immediate loss of the ability to do a SVN re-integrate merge as SVN will never be able to resolve the changes.

SVN log entries

SVN log entries are written in a uniform system as follows:

-
Prefixes minor changes: formatting alterations, project file tweaks.
*
Prefixes major changes: bug fixes, new features.

This is followed by the component (plugin) affected, if not the core (SDK) itself. A colon and the description of what has actually changed is appended. The final entry will look like:

* compiler: allow multiple selection of directories for all operations (copy / delete / move...)