git svn helpers
Details
| Last Update: | 2009-06-06 07:18:45 |
| Version: | git-svn-helpers |
| License/Program Type: | Free |
| Publisher: | Tom Lazar |
| Price: | $0.00 |
Description:
git-svn-helpers is a collection of command line tools that greatly simplifies using git for svn repositories.
git-svn-helpers's main goal is to make setting up a local git repository following an existing svn checkout a 'no-brainer'.
It also addresses using a single git-svn repository for working on multiple checkouts of (usually) different branches and switching between them.
Basic usage (Example)
Executive summary:
> cd path/to/svn/repo
> gitify
Here's a sample session:
> cd /tmp
> svn co https://svn.plone.org/svn/plone/plone.app.form/branches/1.1 plone.app.form
A 1.1/setup.py
...
Checked out revision 27228.
> cd plone.app.form
> gitify
No git repository found in /Users/tomster/.gitcache/.
Initiating cloning into cache.
Analyzing svn log...
Cloning https://svn.plone.org/svn/plone/plone.app.form/ from r10593:27155 into /Users/tomster/.gitcache/
Initialized empty Git repository in /Users/tomster/.gitcache/plone.app.form/.git/
...
Git branch 'local/1.1' is now following svn branch '1.1':
On branch local/1.1
nothing to commit (working directory clean)
> git branch
local/1.1
master
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 ~/.gitcache not 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:
> cd ..
> mkdir feature-branch
> mv plone.app.form feature-branch/
> mkdir maintenance
> cd maintenance/
> svn co https://svn.plone.org/svn/plone/plone.app.form/trunk plone.app.form
A plone.app.form/setup.py
...
U plone.app.form
Checked out revision 27228.
What happens if we run gitify here?:
> cd plone.app.form/
> gitify
Git branch 'local/trunk' is now following svn branch 'trunk':
On branch local/trunk
nothing to commit (working directory clean)
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:
> git branch
local/1.1
local/trunk
master
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:
> cd ../../feature-branch/plone.app.form/
> git status
On branch local/trunk
Changed but not updated:
(use "git add/rm ..." to update what will be committed)
(use "git checkout -- ..." to discard changes in working directory)
modified: docs/HISTORY.txt
...
deleted: plone/app/form/kss/tests/test_kss.py
...
Untracked files:
(use "git add ..." to include in what will be committed)
plone/app/form/tests/test_kss.py
Wohah! What happened is that .git now points to trunk and thus the status command shows the difference between that and our branch as local modifications, since that is what the filesystem represents. We can verify this by using subversions status command:
> svn st
< BLANKLINE >
Phew! All in order! But what to do with git? We've finished working on trunk and want to get back to our feature branch, but the git index is all wrong?! Simple: just re-run gitify:
> gitify
Git branch 'local/1.1' is now following svn branch '1.1':
On branch local/1.1
nothing to commit (working directory clean)
Basically, that's all you need to remember when working with multiple check-outs of the same package: Always run gitify when switching between check-outs!
Requirements:
Python
What's New in This Release:
Added the gs-fetch command which helps keeping the cache up-to-date
Software Tags:
git svn git helpers svn helpers
0 comments
Downloadtube.com agrees that pirated software hurts software
developers and does not support such practices. We acknowledge and
agree that software piracy is theft. Using git svn helpers crack,
git svn helpers key generator, git svn helpers keygen, as well as any
pirated git svn helpers serial number/serial numbers and git svn helpers
registration code/codes, warez, keys, torrents, passwords, is illegal
and does not support the future development of git svn helpers.
Downloadtube.com advises that git svn helpers should be only used in
accordance with the rules of intellectual property and the existing
Criminal Code. Downloadtube.com does not allow the inclusion of any
crack, serial or keygen and disclaims any liability for the
inappropriate use of git svn helpers.
Add to
git svn helpers Version History
Related Software
|
|
From category: Version-Control |
| cvsdadm 0.3.2 is version control software developed by Serge Gagnon. cvsdadm is a tool to assist CVSd administrators in the user admin of the CVSROOT/passwd, CVSROOT/readers, CVSROOT/writers files... |
|
|
From category: Version-Control |
| Barter 0.2 is version control software developed by Joe Geldart. Barter is an integration of the Bazaar revision control system into Nautilus. Barter is an extension for the Nautilus file-m... |
|
|
From category: Version-Control |
| CrossVC XXL 2.0.0-pre2 is version control software developed by Tilo Riemer. CrossVC is a graphical Interface for the cvs client commandline tool on the Unix, Windows and Mac OS X platform. CrossVC... |
|
|
From category: Version-Control |
| CVSweb 3.0.6 is version control software developed by The FreeBSD Project. CVSweb is a WWW interface for CVS repositories with which you can browse a file hierarchy on your browser to view each fil... |
|
|
From category: Version-Control |
| Automatic Revision Control System 0.2.6a is version control software developed by Alastair Poole and Sam Watkins. Automated Revision Control System is used to automatically monitor remote and local... |
|
|
From category: Version-Control |
| USVN (Userfriendly SVN) is based on a web interface and allows you to configure your subversion repositories.... |
|
|
From category: Version-Control |
| ArchLog 1.2 is version control software developed by Franck Pommereau. ArchLog is a log-oriented GUI for the Arch revision control system. ArchLog allows you to take notes as you hack, structuring... |
|
|
From category: Version-Control |
| cvsd 1.0.13 is version control software developed by Arthur de Jong. cvsd is a wrapper program for cvs in pserver mode. cvsd is run as a daemon and is controlled through a configuration fil... |
|
|
From category: Version-Control |
| Codestriker 1.9.2 is version control software developed by David Sitsky. Codestriker project is an open-sourced web application which supports online code reviewing. Traditional document reviews ar... |
|
|
From category: Version-Control |
| ArX 2.2.4 is version control software developed by Kevin B. Smith. ArX is a Revision Control System (RCS), like CVS, Subversion, or GNU arch. It manages \"archives\" (collections of files), such as... |
|
|
From category: Version-Control |
| SVNChecker is a framework for Subversion pre-commit hooks.... |
|
|
From category: Version-Control |
| Support for Subversion branches in Bazaar... |
|
|
From category: Version-Control |
| cvsclone 0.00 is version control software developed by Peter Backes. cvsclone is a utility to clone cvs repositories over the cvspserver interface. Works for anonymous access. Here are some... |
|
|
From category: Version-Control |
| Cervisia 2.4 is version control software developed by Christian Loose. Cervisia is a GUI frontend for the version control system CVS. Cervisia project has features like a blame-annotated view, tagg... |
Leave a comment