X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=contrib%2Fgit-svn%2Fgit-svn.txt;h=b29073997c00944322ccc78ad5df0e1df0fc3f8f;hb=f64c429ff75a1f53945b508f77e5f8f157a024c2;hp=4b79fb0be665e8b4e1c439f239c070ef4c3dbf54;hpb=8fa40aa915964f0df281106221b10fbe664b4fa9;p=git.git diff --git a/contrib/git-svn/git-svn.txt b/contrib/git-svn/git-svn.txt index 4b79fb0b..b2907399 100644 --- a/contrib/git-svn/git-svn.txt +++ b/contrib/git-svn/git-svn.txt @@ -43,6 +43,11 @@ fetch:: Fetch unfetched revisions from the SVN_URL we are tracking. refs/heads/git-svn-HEAD will be updated to the latest revision. + Note: You should never attempt to modify the git-svn-HEAD branch + outside of git-svn. Instead, create a branch from git-svn-HEAD + and work on that branch. Use the 'commit' command (see below) + to write git commits back to git-svn-HEAD. + commit:: Commit specified commit or tree objects to SVN. This relies on your imported fetch data being up-to-date. This makes @@ -61,6 +66,11 @@ rebuild:: the directory/repository you're tracking has moved or changed protocols. +show-ignore:: + Recursively finds and lists the svn:ignore property on + directories. The output is suitable for appending to + the $GIT_DIR/info/exclude file. + OPTIONS ------- -r :: @@ -99,6 +109,13 @@ OPTIONS default for objects that are commits, and forced on when committing tree objects. +-l:: +--find-copies-harder:: + Both of these are only used with the 'commit' command. + + They are both passed directly to git-diff-tree see + git-diff-tree(1) for more information. + COMPATIBILITY OPTIONS --------------------- --no-ignore-externals:: @@ -142,9 +159,11 @@ Tracking and contributing to an Subversion managed-project: # Commit only the git commits you want to SVN:: git-svn commit [ ...] # Commit all the git commits from my-branch that don't exist in SVN:: - git rev-list --pretty=oneline git-svn-HEAD..my-branch | git-svn commit + git-svn commit git-svn-HEAD..my-branch # Something is committed to SVN, pull the latest into your branch:: git-svn fetch && git pull . git-svn-HEAD +# Append svn:ignore settings to the default git exclude file: + git-svn show-ignore >> .git/info/exclude DESIGN PHILOSOPHY ----------------- @@ -165,7 +184,9 @@ SVN repositories via one git repository. Simply set the GIT_SVN_ID environment variable to a name other other than "git-svn" (the default) and git-svn will ignore the contents of the $GIT_DIR/git-svn directory and instead do all of its work in $GIT_DIR/$GIT_SVN_ID for that -invocation. +invocation. The interface branch will be $GIT_SVN_ID-HEAD, instead of +git-svn-HEAD. Any $GIT_SVN_ID-HEAD branch should never be modified +by the user outside of git-svn commands. ADDITIONAL FETCH ARGUMENTS -------------------------- @@ -199,6 +220,13 @@ working trees with metadata files. svn:keywords can't be ignored in Subversion (at least I don't know of a way to ignore them). +Renamed and copied directories are not detected by git and hence not +tracked when committing to SVN. I do not plan on adding support for +this as it's quite difficult and time-consuming to get working for all +the possible corner cases (git doesn't do it, either). Renamed and +copied files are fully supported if they're similar enough for git to +detect them. + Author ------ Written by Eric Wong .