Skip to content

pbadenski/git-svn-merge

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Git SVN Merge

Licensed under GNU General Public License v2.

Merge support is based on cherry-picking and may not satisfy your needs - but it works.

Instructions

If you're using Git 1.7.5:

  • replace old 'git-svn' script with this one

Otherwise:

  • use your favourite diff tool to apply changes (you may want to download original 'git-svn' and perform 3-way merge),
  • afterwards verify everything works fine by running "tests/test.sh"

Usage:

git svn merge <list_of_git_commits>..

and afterwards

git svn dcommit

If you receive an error after fixing the problem continue with:

git svn merge --continue

You can also use cherrypicking (which is a thin wrapper on 'git cherry-pick')

git svn cherry-pick <commit>

See bash test scripts to get more idea on how to use it and what's exactly going on.

THIS SOFTWARE IS STILL WORK IN PROGRESS AND WILL DAMAGE YOUR DATA! USE WITH CAUTION!

#Known limitations (vel bugs)

  • merge via more than 2 branches may not work properly for some corner cases (see tests),
  • errors may not be handled properly in some cases, if you get an error verify that all commits were merged properly,
  • there's no verification of whether certain commit was already merged,
  • there's no support for reverse merges (equivalent of 'git revert'),
  • there's no support for reintegrate,
  • renames may not be handled properly (consider using 'diff.renameLimit' set to 0)

About

Git-svn support for SVN merges using Git cherry-picking

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages