Using git to hack Unison
Alan Schmitt <[email protected]>
| Newsgroups | gmane.network.unison.devel |
|---|---|
| Message-ID | <[email protected]> |
Hi, As it was the first time I used the git clone of the svn repository to hack Unison, I thought I would report with how it went. To summarize: it went pretty well, with one exception. Let's start with the exception (which is the first thing that bit me): I first tried to build Unison, to make sure my recent upgrades would not prevent me to, and it failed, because of the REV keyword. To solve this I created the Makefile.ProjectInfo file from a svn checkout and copied it to my local repository. I searched how to get rid of this dependency, but could not find how (except maybe by adding some hooks on the svn server to update a file containing the revision before serving it). I then started coding, and realized I'd better make a branch with my current changes. This was simply a: git checkout -b new_branch_name I then worked on the code, regularly doing commits. Before pushing everything, I cleaned up and reordered the commits to make them nicer in the history. I then put everything in the master branch. To avoid confusing svn, one needs to do: git checkout master git svn rebase # to fetch any svn commit that may have happened git checkout new_branch_name git rebase master # to merge them with the work then: git checkout master git merge new_branch_name --ff-only to append the commits at the end of the history (the --ff-only guarantees the commits can be applied without doing a merge). I then edit the logmsg, and do a make git_checkin which push everything back to svn. I found this worked nicely, as it lets me have experimental branches in my local repository, under version control, without polluting the main svn repository. Alan