Gitify



Newer version available (0.9)

  1. 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.
  2. 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)

Gitify

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

Brew

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

GitifyGitify
Gitify

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.

Files for git-svn-helpers, version 0.3b
Filename, sizeFile typePython versionUpload dateHashes
Filename, size git-svn-helpers-0.3b.zip (15.3 kB) File type Source Python version None Upload dateHashes
Close

Hashes for git-svn-helpers-0.3b.zip

Gitify Github

Hashes for git-svn-helpers-0.3b.zip
AlgorithmHash digest
SHA256f6229fdea1a24dcaebd96f8b4137ad0d02978fc4563b0acf1ccb640a23f25e33
MD50d6424f423d76fe418edc180b05d085e
BLAKE2-256446998665efa28b7429debbbafd53231e753a3c8b86c06ad8f62a736c73c3db8