CReP: IA dev workflow using git-svn

  • WARNING:: if you are working on vm-home to avoid out-of-memory problems do:

    ulimit -v unlimited
  • Pull the last commits to the local master branch with:

    git checkout master
    git svn rebase
  • create a working branch

    git checkout -b devBranch
  • use this branch to develop your feature and fix the bugs
    and commit your work to the local git repository with

    git commit -m 'bla bla bla bla'
  • create a test branch like the master

    git checkout master
    git svn rebase
    git checkout -b sandMaster

    and merge all the commits from the devBranch branch in an atomic commit (using –squash)

    git merge --squash devBranch

    check what is going on

    git status
    git diff --staged

    if everything looks ok, commit it

    git commit
  • Now you can check if this code is working correctly
    to be sure that the commit to the SVN will work correctly…
    If everything is fine…
  • …let’s do the same commit to the master branch

    git checkout master
    git merge --squash devBranch
    git status
    git diff --staged
    git commit
    git svn rebase
  • Let’s do a dry-run and check the patches

    git svn dcommit --dry-run
    git diff-tree 25e084b618580d69f5b57d8f9c1ca37045cf65dd~1 25e084b618580d69f5b57d8f9c1ca37045cf65dd -p
  • If everything is correct it’s time to commit to the SVN remote repo
  • git svn dcommit
  • You can push the code using the pi interface