Eazysvn

Make simple revision merges and branch switching much easier
Download

Eazysvn Ranking & Summary

Advertisement

  • Rating:
  • License:
  • GPL
  • Price:
  • FREE
  • Publisher Name:
  • Marius Gedminas
  • Publisher web site:
  • https://launchpad.net/~mgedmin

Eazysvn Tags


Eazysvn Description

Make simple revision merges and branch switching much easier Eazysvn is a Python module that simplifies some common operations with Subversion branches.UsageGetting helpAt the shell prompt typeeazysvn helpIt will print a list of commands. Some of the commands have aliases:ezswitch = eazysvn switchezmerge = eazysvn mergeezrevert = eazysvn revertezbranch = eazysvn branchurlSwitching between branchesIn a subversion working directory runezswitch -lto see all the branches available in your project. This assumes your Subversion repository uses the standard layout with 'trunk', 'tags', and 'branches' in it.Then runezswitch branchnameto switch to a branch, andezswitch trunkto switch back to trunk.Working with branchesSay you're working on a project and in the middle of a difficult refactoring suddenly realize the changes you've made are too risky for trunk you want to put them in a branch. Runezswitch --create my-branchThis will create a new branch and switch your working directory to it. All your changes in progress are kept intact and you can commit them directly to the new branch with svn commit.Seeing all the changes on a branchYou may want to see the overall diff of changes made on a branch since it was created, say, to review it before attempting a merge.eazysvn branchdiff branchnamedoes exactly that. For extra readability, install colordiff and useeazysvn branchdiff branchname | colordiff | less -RMerging branchesAfter you've finished hacking on your branch, you will want to switch back to trunk and start merging. Runezswitch trunkthenezmerge my-branchYou will see the svn command used for the merge as well as a log of all the changes. Fix merge conflicts (if any), run the test suite, then commit. The output of ezmerge helps you produce an informative commit message.If instead of merging the changes to your working directory you'd like to see the combined diff, pass the -d (or --diff) option to ezmergeezmerge -d featurebranchCherrypickingIf you want to merge only some of the changes made in a branch, you can pass the revision number (or a range) to ezmerge. For example, to backport a bugfix implemented in revision 1234 of trunk to a release branch,ezswitch release-branchezmerge 1234 trunkYou can also merge a range of revisionsezmerge 1234-1236 trunkThis range is inclusive, unlike Subversion. If you want to, you can also use Subversion-style half-open ranges as wellezmerge 1233:1236 trunkThe --diff option works here too.ezmerge -d 1234-1236 trunkReverting comitted changesIt's like cherrypicking, but in reverse: you want to unapply changes already committed to this branch.ezrevert 1234Making tagsTo tag the current version of the source tree in your working directory, runeazysvn tag tagnameManipulating branchesTo remove a branch completely, runeazysvn rmbranch branchnameTo rename a branch, runeazysvn mvbranch oldbranchname newbranchnameTo do other kinds of operations, eazysvn provides a shortcut that lets you use branch names instead of full branch URLs (this bit assumes a Unix-like shell):svn ls $(ezbranch branchname)svn diff `ezbranch branch1` `ezbranch branch2`Another possibly useful eazysvn command is branchpoint. It shows the revision when a branch was created. For example, to see the changes in trunk that are not present in a branch, runsvn diff -r `eazysvn branchpoint branch`:HEAD `ezbranch trunk`Overall optionsAll commands that require a branch name as an argument accept a -l (or --list) option that lists all branches, e.g.ezbranch -lAll commands that make changes to the repository or working directory accept a -n (or --dry-run) option that just prints the svn commands that would otherwise be executed.ezmerge -n 1234 otherbranchAll commands that make changes to the repository (create/remove/rename branches or tags) accept a -m option with a commit message. If not specified, you'll get a text editor spawned by subversion itself to type the commit message.ezswitch -c newbranch -m "Create branch for the new feature"Many of the commands accept other options as well. Useeazysvn cmd --helpezmerge --helpezswitch --helpetc.to discover those. Requirements: · Python What's New in This Release: · New option: ezmerge --reintegrate, passed straight to svn merge. Contributed by Wolfgang Schnerring.


Eazysvn Related Software