-
Notifications
You must be signed in to change notification settings - Fork 1
karenc/svn_rebase
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
svn_rebase(1) svn_rebase(1)
NAME
svn_rebase - rebase a svn repository
SYNOPSIS
svn_rebase [-r REVISIONS|--revisions=REVISIONS] [-d DESTINATION|--des‐
tination=DESTINATION] [-m|--manual-commit] source_url
svn_rebase [-c|--continue] [-a|--abort]
DESCRIPTION
This script does merging using svn merge with multiple revisions. For
example:
svn_rebase -r1000-1005,1008 http://svnserver/path
will merge revisions 1000-1005 and 1008 from http://svnserver/path into
the current directory.
It merges one revision at a time. If there's a conflict, the user can
resolve it manually and continue the merge.
---
Reasons for using this script:
svnmerge also allows merging multiple commits. svnmerge will merge
all the commits into the current tree and let the user commits it. The
problem comes when the user merges lots of commits in one go, losing
version history and making "svn ann" useless.
This script will commit after merging every commit, and commit with
the original message with the original revision number. So it is pos‐
sible to use "svn ann" to find out which commit changed what line and
the commit message with it.
OPTIONS
-h, --help
Show the help message for this program.
-a, --abort
Remove the state of the rebasing process.
-c, --continue
Restart the rebasing process after having resolved a merge con‐
flict.
-m, --manual-commit
After merging a commit, let the user commit manually.
-r REVISIONS, --revisions=REVISIONS
Revisions to merge
-d DESTINATION, --destination=DESTINATION
Target directory of the merges.
EXAMPLES
You created a branch from trunk, trunk has since changed. You want to
update your branch with trunk changes.
1. Remove the branch:
$ svn rm https://svnserver/branches/branch
$ svn commit
...
Committed revision 1234
2. Copy the current trunk into a new branch:
$ svn cp https://svnserver/branches/trunk
https://svnserver/branches/branch
$ svn commit
$ svn co https://svnserver/branches/branch
$ cd branch
3. Start rebasing: (Use the branch before we rename it)
$ svn_rebase https://svnserver/branches/branch@1233
4. Resolve conflicts if there are any:
It'll show a message like: Use "svn commit -F commit_message" to
commit
- Manually edit files to resolve conficts
- $ svn resolve file1
- $ svn commit -F commit_message
5. Continue the merge:
$ svn_rebase --continue
BUGS
If you found any bugs or have any feature requests, please open an
issue at http://github.com/karenc/svn_rebase/issues.
AUTHOR
Karen Chan <[email protected]>
svn_rebase(1)
------------------------------------------------------------
svn_merge(1) svn_merge(1)
NAME
svn_merge - merge changesets from one svn repository to the working
directory
SYNOPSIS
svn_merge [-r REVISIONS|--revisions=REVISIONS] [-d DESTINATION|--desti‐
nation=DESTINATION] [-m|--manual-commit] source_url
svn_merge [-c|--continue] [-a|--abort]
DESCRIPTION
This script does merging using svn merge with multiple revisions. For
example:
svn_merge -r1000-1005,1008 http://svnserver/path
will merge revisions 1000-1005 and 1008 from http://svnserver/path into
the current directory.
It merges one revision at a time. If there's a conflict, the user can
resolve it manually and continue the merge.
---
Reasons for using this script:
svnmerge also allows merging multiple commits. svnmerge will merge
all the commits into the current tree and let the user commits it. The
problem comes when the user merges lots of commits in one go, losing
version history and making "svn ann" useless.
This script will commit after merging every commit, and commit with
the original message with the original revision number. So it is pos‐
sible to use "svn ann" to find out which commit changed what line and
the commit message with it.
OPTIONS
-h, --help
Show the help message for this program.
-a, --abort
Remove the state of the merging process.
-c, --continue
Restart the merging process after having resolved a merge conflict.
-m, --manual-commit
After merging a commit, let the user commit manually.
-r REVISIONS, --revisions=REVISIONS
Revisions to merge
-d DESTINATION, --destination=DESTINATION
Target directory of the merges.
EXAMPLES
Scenario 1: Merging from one tree to another tree
You want to merge changes from one branch into another branch. For
example, you created a branch from trunk to fix a ticket, now it's done
and you want to merge it back into trunk.
1. Go to the trunk directory
2. Start merging:
$ svn_merge https://svnserver/branches/trunk_1234
3. Resolve conflicts and continue the merge
4. Resolve conflicts if there are any:
It'll show a message like: Use "svn commit -F commit_message" to
commit
- Manually edit files to resolve conficts
- $ svn resolve file1
- $ svn commit -F commit_message
5. Continue the merge:
$ svn_merge --continue
-----
Scenario 2: Merging some changesets from one tree to another tree
You want to cherry pick changesets to merge from one tree to another.
For example, you want to get some changesets from "branch" to "trunk".
1. Go to the trunk directory
2. Select changesets to merge:
$ svn_merge -r1000-1005,1008 https://svnserver/branches/branch
Or if your target directory is different from your source directory:
$ svn_merge -r 1000-1005,1008 -d dir2
https://svnserver/branches/branch/dir
Or if you want to manually commit the changes:
$ svn_merge -m https://svnserver/branches/branch
BUGS
If you found any bugs or have any feature requests, please open an
issue at http://github.com/karenc/svn_rebase/issues.
AUTHOR
Karen Chan <[email protected]>
svn_merge(1)
About
a svn merge tool that is a bit like simplified git rebase
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published