- You must have Gitify set up with your theme in order to follow these instructions. Working with Gitify and Git¶ A common purpose of collaborating on a Theme will be to build a se.
- Gitify is licensed under the MIT Open Source license. For more information, see the LICENSE file in this repository.
Gitify created a local branch local/1.1 that follows the (remote) svn branch 1.1 and switched to it Multiple check-outs In practice you will often work with different local copies of a given repository, i.e. On trunk and on a feature branch. Gitify is all about making your life easier. Sitting on your menu bar, it informs you for any GitHub notifications without being annoying and of course without adverts. It just gets the job done. Works with GitHub and GitHub Enterprise.
Released:
Command-line tools to make git-svn simple
Project description
git-svn-helpers is a collection of command line tools that greatly simplifyusing git for svn repositories.
Its main goal is to make setting up a local git repository following anexisting svn checkout a ‘no-brainer’.
It also addresses using a single git-svn repository for working on multiplecheckouts of (usually) different branches and switching between them.
Basic usage (Example)

Executive summary:
Here’s a sample session:
Points to note:
- gitify limited the cloning to the revisions found in the svn log of the package root (here https://svn.plone.org/svn/plone/plone.app.form/). A big time saver, especially on large repositories (such as plone.collective)
- gitify created the git repository at ~/.gitcachenot in place
- gitify created a local branch local/1.1 that follows the (remote) svn branch 1.1 and switched to it
Multiple check-outs
In practice you will often work with different local copies of a given repository, i.e. on trunk and on a feature branch. That’s when the .gitcache directory created above comes in handy. Let’s move our previous checkout out of the way and create a maintenance checkout that follows trunk:
What happens if we run gitify here?:
Notice, that this operation went much faster, as we now have used the existing git repository in the cache directory. This can be further evidenced by looking at the available local branches now:
Caveats
‘Recycling’ .git in this manner works (perhaps surprisingly) well in practice, but you need to keep the following in mind:
All checkouts share the same index!
Let’s take a look at what this means by switching back to our feature branch:
Wohah! What happened is that .git now points to trunk and thus the statuscommand shows the difference between that and our branch as localmodifications, since that is what the filesystem represents. We can verifythis by using subversions status command:
Phew! All in order! But what to do with git? We’ve finished working on trunkand want to get back to our feature branch, but the git index is all wrong?!Simple: just re-run gitify:
Basically, that’s all you need to remember when working with multiplecheck-outs of the same package: Always run gitify when switching betweencheck-outs!
Keeping the cache up-to-date
Of course, once you introduce a cache you need to keep it up-to-date. git-svnprovides the fetch command for this purpose. In practice it is cumbersometo update each package manually, though. Therefore we provide the gs-fetchcommand which can update multiple packages at once using wildcards, like so:
You can pass the -v option to see the output of the git-svn fetch commands.If you don’t provide a package all packages will be updated. This is usefulfor automated updates, i.e. from crontab.
Keeping git and svn in sync
Since the local filesystem is both a git repository, as well as a svn check-out at the same time (IOW we have both .git and .svn floatingaround) they should be kept in sync as closely as possible. By design, thiscan only happen, when we have online access to the svn repository. Thereforeit is best performed when committing back to svn. The way this is achievedmanually is to first dcommit and then perform a svn up --force command.The --force is necessary so that svn won’t be bothered by any new filesthat have been committed:
TODO
‘Recycling’ git repositories with symlinks is sub-optimal. Ideally we wouldwant to create local clones (IOW replace the symlink command with a gitclone command). However, git clone currently doesn’t preserve the svninformation of the source. That means we couldn’t dcommit from our clonedrepository! Eventually, this should be fixed up-stream in git svn.
Change history
0.3 - 2009-06-09
- Added the gs-commit command which helps committing back to svn andkeeping git and svn in sync
0.2b - 2009-06-05
- Added the gs-fetch command which helps keeping the cache up-to-date
0.1b2 - 2009-05-30
- BUGFIX: get the svn log from the package root (i.e. /path/to/foo)instead of the locally checked out path (i.e. path/to/foo/branches/bar)which is usually much younger than the entire package and thus we would missrevisions in the cloning process!
0.1b1 - 2009-05-30
- Initial release a.k.a. “Works for me”
Project details



Release historyRelease notifications | RSS feed
0.9
0.8
0.7
0.6
0.5
0.4
0.3.1
0.3b pre-release
0.2b pre-release
Gitifyhg Mercurial
0.1b2dev pre-release
0.1b1dev pre-release
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Filename, size | File type | Python version | Upload date | Hashes |
---|---|---|---|---|
Filename, size git-svn-helpers-0.3b.zip (15.3 kB) | File type Source | Python version None | Upload date | Hashes |
Hashes for git-svn-helpers-0.3b.zip
Gitify Github
Algorithm | Hash digest |
---|---|
SHA256 | f6229fdea1a24dcaebd96f8b4137ad0d02978fc4563b0acf1ccb640a23f25e33 |
MD5 | 0d6424f423d76fe418edc180b05d085e |
BLAKE2-256 | 446998665efa28b7429debbbafd53231e753a3c8b86c06ad8f62a736c73c3db8 |
