wiki:GitMirror

Version 3 (modified by Screwtape, 4 years ago) (diff)

Documented some of my git-svn experiences.

A Git mirror of the entire Twisted repository is available.

Checking out

git clone http://svn.twistedmatrix.com/git/Twisted/.git

Note that even if you have Twisted commit access, you can't create or merge branches this way - you must use SVN directly, make your own Git mirror with git svn, or obtain a copy (not a clone) of such a Git mirror. If you do choose to make your own Git mirror with git svn, it takes about a week to import the entire Twisted commit history.

Git isn't ignoring .pyc files!

There is no .gitignore in the repository. This is intentional - there's no svn:ignore properties in the official SVN repository either - on the grounds that different people might want to ignore different things. Instead, you can tell Git to ignore things by adding rules to the .git/info/exclude file. Here's an example:

*~
*.py[co]
_trial_temp
dropin.cache
*.o
*.lo
*.la

See the Git documentation on .gitignore, particularly core.excludesfile, for more information.

git svn operations seem to take forever

If you have your own git svn clone, and svn-based operations seem to take forever, try running:

git svn info

If that takes longer than 30 seconds to run, and eventually prints an error message, this is a clue that git svn has gotten confused about how your current branch connects to the imported SVN history. Either git checkout a git branch that's based on an SVN branch or (if you're already on such a branch, and it's broken) use git reset some-remote-branch-name to make sure your local branch is pointing exactly at a commit that was imported from SVN.

git svn branching

Follow the standard Twisted branch-name conventions when creating branches with Git.

git svn branch new-branch-name-XXXX
git checkout -b new-branch-name-XXXX remotes/new-branch-name-XXXX

(where XXXX means the ticket-number in question)