-
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