Skip to content

Extensions to git-svn to simplify common tasks like creating and deleting branches in svn

License

Notifications You must be signed in to change notification settings

cosmin/git-svn-extensions

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 

Repository files navigation

Author: Cosmin Stejerean (offbytwo), Sergiu Dumitriu (sdumitriu)
License: MIT
Description: git-svn-extensions are a set of shell scripts that make it easier 
to work with subversion from git.

* Installation *

The current extensions are written as a set of bash functions. Simply add the
following line to your .bashrc, .bash_profile or similar to take advantage of
these features:

. /path/to/this/project/source.sh

* Usage *

- creating a subversion branch or tag

  $ git-svn-create-branch branch_name
  $ git-svn-create-tag tag_name

  This will create a branch in svn with that name, starting from the currently
  tracked remote (trunk or a svn branch), and check it out locally as
  svn-branch_name

  The tag creation does the same, with the differences that it aborts if the
  local branch contains unmerged changes, and at the end it does not checkout
  the remote tag into a new local branch, since tags are not normally edited.

- deleting a subversion branch or tag

  $ git-svn-delete-branch branch_name
  $ git-svn-delete-tag tag_name

  By default this only shows what would be deleted (dry run). Append -f to
  actually delete.

- removing references to remote branches and tags that no longer exist in svn

  $ git-svn-prune-branches
  $ git-svn-prune-tags

  By default this only shows what would be deleted (dry run). Append -f to
  actually delete.

- list svn branches or tags (excluding trunk)

  $ git-svn-branches
  $ git-svn-tags

- show the current local and remote branch names

  $ git-current-branch
  $ git-current-remote-branch

  The latter correctly detects if the local branch tracks the trunk, a branch,
  or a tag. Append -s to only print the name of the branch/tag, or "trunk"
  instead of the user-friendly message.

- full conversion of a subversion project into a (local) git repository

  $ git-svn-migrate

  This function is interactive, prompting for the needed information. The new
  git repository does not maintain the connection to the SVN one. This is useful
  for fully migrating a project from subversion to git, a one-time process that
  preserves the entire history of the project (as much as git-svn can obtain,
  anyway), including existing tags and branches.

About

Extensions to git-svn to simplify common tasks like creating and deleting branches in svn

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages