Forking on Google Code (or any other SVN hosting)

Sites like github, bitbucket provides an excellent/useful feature of “forking” projects. This allows one to simply fork a project and work on their desired features (before submitting it to the projector owner and getting commit access).

How is this workflow best achieved for SVN projects (especially the various ones hosted on Google Code that are still using SVN)?

  • How to clone a project and stay up to date with it?
  • Updating my fork from terminal without updating parent
  • How do I merge between multiple forked repositories on GitHub?
  • Tutorial on the life-cycle of a forked GIT repository while using remote tags
  • Add Github fork to existing repository
  • Git, Create a clone/fork but keeping my projects “origin-parts” updated from the source?
  • Clarification: I know about svn diff, but want a solution where I can do several intermittent commits before submitting the changes back to the author (the owner of the SVN repo). Bonus points for making this “fork” as easy as clicking a button (I wonder if github/bitbucket will ever have this feature of automatically cloning a SVN repo).

  • Git tag status while not in directory
  • File permission issue with Mac/Windows when using git
  • git remote server moved, how to update working copy configuration?
  • Abort conflicting merge in egit
  • What is the difference between pull and clone in git?
  • How to use Sublime text editor to resolve git merge conflicts?
  • 2 Solutions collect form web for “Forking on Google Code (or any other SVN hosting)”

    Since you already seem to be familiar with git, you can use git svn. You can fetch the SVN project like this (-s indicates the standard trunk/branches/tags layout):

    git svn clone url://path/to/repo -s

    You can push each local git commit as a separate svn commit like this:

    git svn dcommit

    It is common practice to use the git rebase command to clean up and simplify the commit history before pushing changes to svn.

    edit: for mercurial there are also several extensions to interoperate with an SVN repository, though none appear to be as mature as git-svn.

    How is it achieved? The same way it’s always been, you young whippersnapper!

    Why, in my day, after walking home from school (uphill, in the snow), we had to create a diff of our changes and submit it to the maintainer (or maintainer’s mailing list/group) manually!

    You’ll find the command svn diff to be of use to you in this task. It will create a unified diff of your changes suitable for submission upstream.

    Git Baby is a git and github fan, let's start git clone.