Home Explore Blog CI



git

7th chunk of `Documentation/git-svn.adoc`
2cbcf63804d446e6c86e6f38ce9d6518747794018a0692ed0000000100000fa4
	Take the commit message from the given file. This option
	disables the `--edit` option.

'info'::
	Shows information about a file or directory similar to what
	`svn info' provides.  Does not currently support a -r/--revision
	argument.  Use the --url option to output only the value of the
	'URL:' field.

'proplist'::
	Lists the properties stored in the Subversion repository about a
	given file or directory.  Use -r/--revision to refer to a specific
	Subversion revision.

'propget'::
	Gets the Subversion property given as the first argument, for a
	file.  A specific revision can be specified with -r/--revision.

'propset'::
	Sets the Subversion property given as the first argument, to the
	value given as the second argument for the file given as the
	third argument.
+
Example:
+
------------------------------------------------------------------------
git svn propset svn:keywords "FreeBSD=%H" devel/py-tipper/Makefile
------------------------------------------------------------------------
+
This will set the property 'svn:keywords' to 'FreeBSD=%H' for the file
'devel/py-tipper/Makefile'.

'show-externals'::
	Shows the Subversion externals.  Use -r/--revision to specify a
	specific revision.

'gc'::
	Compress $GIT_DIR/svn/<refname>/unhandled.log files and remove
	$GIT_DIR/svn/<refname>/index files.

'reset'::
	Undoes the effects of 'fetch' back to the specified revision.
	This allows you to re-'fetch' an SVN revision.  Normally the
	contents of an SVN revision should never change and 'reset'
	should not be necessary.  However, if SVN permissions change,
	or if you alter your --ignore-paths option, a 'fetch' may fail
	with "not found in commit" (file not previously visible) or
	"checksum mismatch" (missed a modification).  If the problem
	file cannot be ignored forever (with --ignore-paths) the only
	way to repair the repo is to use 'reset'.
+
Only the rev_map and refs/remotes/git-svn are changed (see
'$GIT_DIR/svn/\**/.rev_map.*' in the FILES section below for details).
Follow 'reset' with a 'fetch' and then 'git reset' or 'git rebase' to
move local branches onto the new tree.

-r <n>;;
--revision=<n>;;
	Specify the most recent revision to keep.  All later revisions
	are discarded.
-p;;
--parent;;
	Discard the specified revision as well, keeping the nearest
	parent instead.
Example:;;
Assume you have local changes in "master", but you need to refetch "r2".
+
------------
    r1---r2---r3 remotes/git-svn
                \
                 A---B master
------------
+
Fix the ignore-paths or SVN permissions problem that caused "r2" to
be incomplete in the first place.  Then:
+
[verse]
git svn reset -r2 -p
git svn fetch
+
------------
    r1---r2'--r3' remotes/git-svn
      \
       r2---r3---A---B master
------------
+
Then fixup "master" with 'git rebase'.
Do NOT use 'git merge' or your history will not be compatible with a
future 'dcommit'!
+
[verse]
git rebase --onto remotes/git-svn A^ master
+
------------
    r1---r2'--r3' remotes/git-svn
                \
                 A'--B' master
------------

OPTIONS
-------

--shared[=(false|true|umask|group|all|world|everybody)]::
--template=<template-directory>::
	Only used with the 'init' command.
	These are passed directly to 'git init'.

-r <arg>::
--revision <arg>::
	   Used with the 'fetch' command.
+
This allows revision ranges for partial/cauterized history
to be supported.  $NUMBER, $NUMBER1:$NUMBER2 (numeric ranges),
$NUMBER:HEAD, and BASE:$NUMBER are all supported.
+
This can allow you to make partial mirrors when running fetch;
but is generally not recommended because history will be skipped
and lost.

-::
--stdin::
	Only used with the 'set-tree' command.
+
Read a list of commits from stdin and commit them in reverse
order.  Only the leading sha1 is read from each line, so
'git rev-list --pretty=oneline' output can be used.

--rmdir::
	Only used with the 'dcommit', 'set-tree' and 'commit-diff' commands.
+
Remove directories from the SVN tree if there are no files left
behind.

Title: Git SVN Commands and Options for SVN Repository Interaction
Summary
The git-svn tool provides commands such as info, proplist, propget, propset, show-externals, gc, and reset for interacting with SVN repositories, along with various options for customizing behavior, specifying revisions, and managing repository data, including resetting and refetching revisions, and discarding or keeping specific revisions.