X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=contrib%2Fgit-svn%2Fgit-svn.txt;h=e18fcaf4fb542ae5b5b2921fbc9abd62dbd7eb92;hb=b411fda15df4897a1308bbb5950088ea6138cbad;hp=8e9a971a8522569b58d4552a2ec1c0218c474ae2;hpb=be972922d034e4b007e0f644a7285266863f2cbc;p=git.git diff --git a/contrib/git-svn/git-svn.txt b/contrib/git-svn/git-svn.txt index 8e9a971a..e18fcaf4 100644 --- a/contrib/git-svn/git-svn.txt +++ b/contrib/git-svn/git-svn.txt @@ -101,6 +101,8 @@ OPTIONS cannot version empty directories. Enabling this flag will make the commit to SVN act like git. + repo-config key: svn.rmdir + -e:: --edit:: Only used with the 'commit' command. @@ -109,6 +111,8 @@ OPTIONS default for objects that are commits, and forced on when committing tree objects. + repo-config key: svn.edit + -l:: --find-copies-harder:: Both of these are only used with the 'commit' command. @@ -116,6 +120,9 @@ OPTIONS They are both passed directly to git-diff-tree see git-diff-tree(1) for more information. + repo-config key: svn.l + repo-config key: svn.findcopiesharder + ADVANCED OPTIONS ---------------- -b:: @@ -133,6 +140,8 @@ ADVANCED OPTIONS This option may be specified multiple times, once for each branch. + repo-config key: svn.branch + -i:: --id :: This sets GIT_SVN_ID (instead of using the environment). See @@ -145,7 +154,7 @@ COMPATIBILITY OPTIONS Only used with the 'rebuild' command. Run this if you used an old version of git-svn that used - 'git-svn-HEAD' instead of 'remotes/git-svn' as the branch + "git-svn-HEAD" instead of "remotes/git-svn" as the branch for tracking the remote. --no-ignore-externals:: @@ -162,38 +171,29 @@ COMPATIBILITY OPTIONS Otherwise, do not enable this flag unless you know what you're doing. ---no-stop-on-copy:: - Only used with the 'fetch' command. - - By default, git-svn passes --stop-on-copy to avoid dealing with - the copied/renamed branch directory problem entirely. A - copied/renamed branch is the result of a being created - in the past from a different source. These are problematic to - deal with even when working purely with svn if you work inside - subdirectories. - - Do not use this flag unless you know exactly what you're getting - yourself into. You have been warned. + repo-config key: svn.noignoreexternals -Examples -~~~~~~~~ +Basic Examples +~~~~~~~~~~~~~~ Tracking and contributing to an Subversion managed-project: -# Initialize a tree (like git init-db):: +------------------------------------------------------------------------ +# Initialize a tree (like git init-db): git-svn init http://svn.foo.org/project/trunk -# Fetch remote revisions:: +# Fetch remote revisions: git-svn fetch -# Create your own branch to hack on:: +# Create your own branch to hack on: git checkout -b my-branch remotes/git-svn -# Commit only the git commits you want to SVN:: +# 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:: +# Commit all the git commits from my-branch that don't exist in SVN: git-svn commit remotes/git-svn..my-branch -# Something is committed to SVN, pull the latest into your branch:: +# Something is committed to SVN, pull the latest into your branch: git-svn fetch && git pull . remotes/git-svn -# Append svn:ignore settings to the default git exclude file:: +# Append svn:ignore settings to the default git exclude file: git-svn show-ignore >> .git/info/exclude +------------------------------------------------------------------------ DESIGN PHILOSOPHY ----------------- @@ -232,7 +232,37 @@ git commits with the following syntax: This allows you to tie unfetched SVN revision 375 to your current HEAD:: - git-svn fetch 375=$(git-rev-parse HEAD) + `git-svn fetch 375=$(git-rev-parse HEAD)` + +Advanced Example: Tracking a Reorganized Repository +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +If you're tracking a directory that has moved, or otherwise been +branched or tagged off of another directory in the repository and you +care about the full history of the project, then you can read this +section. + +This is how Yann Dirson tracked the trunk of the ufoai directory when +the /trunk directory of his repository was moved to /ufoai/trunk and +he needed to continue tracking /ufoai/trunk where /trunk left off. + +------------------------------------------------------------------------ + # This log message shows when the repository was reorganized: + r166 | ydirson | 2006-03-02 01:36:55 +0100 (Thu, 02 Mar 2006) | 1 line + Changed paths: + D /trunk + A /ufoai/trunk (from /trunk:165) + + # First we start tracking the old revisions: + GIT_SVN_ID=git-oldsvn git-svn init \ + https://svn.sourceforge.net/svnroot/ufoai/trunk + GIT_SVN_ID=git-oldsvn git-svn fetch -r1:165 + + # And now, we continue tracking the new revisions: + GIT_SVN_ID=git-newsvn git-svn init \ + https://svn.sourceforge.net/svnroot/ufoai/ufoai/trunk + GIT_SVN_ID=git-newsvn git-svn fetch \ + 166=`git-rev-parse refs/remotes/git-oldsvn` +------------------------------------------------------------------------ BUGS ----