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)?

  • Bitbucket: Update a fork to merge changes of master repo?
  • unable to spawn git no such file or directory on a specific fork on github
  • How do I fork multiple projects into one repository with git?
  • Updating multiple branches of a forked repository on Github
  • Is it possible to 'fork a fork' in Github?
  • How to update GitHub forked repository using TortoiseGIT?
  • 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 ignoring .gitattributes pattern
  • What is best practice for keeping secrets out of a git repository?
  • Cocoapods error during pod update
  • How do you preserve code that DIDN'T work?
  • How do you squelch git's automatic merge message?
  • My dev branch is 1 commit behind master after pull request
  • 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.