Documentation: explain push.default option a bit more
[gitweb.git] / Documentation / git-svn.txt
index 39feb62129d9527f08db69175bcba19ea5d253aa..34ee785064128bce0feb2cfc86d3040b42a8f428 100644 (file)
@@ -7,6 +7,7 @@ git-svn - Bidirectional operation between a Subversion repository and git
 
 SYNOPSIS
 --------
+[verse]
 'git svn' <command> [options] [arguments]
 
 DESCRIPTION
@@ -156,6 +157,17 @@ Skip "branches" and "tags" of first level directories;;
        affecting the working tree; and the 'rebase' command will be
        able to update the working tree with the latest changes.
 
+--preserve-empty-dirs;;
+       Create a placeholder file in the local Git repository for each
+       empty directory fetched from Subversion.  This includes directories
+       that become empty by removing all entries in the Subversion
+       repository (but not the directory itself).  The placeholder files
+       are also tracked and removed when no longer necessary.
+
+--placeholder-filename=<filename>;;
+       Set the name of placeholder files created by --preserve-empty-dirs.
+       Default: ".gitignore"
+
 'rebase'::
        This fetches revisions from the SVN parent of the current HEAD
        and rebases the current (uncommitted to SVN) work against it.
@@ -210,8 +222,25 @@ discouraged.
        Add the given merge information during the dcommit
        (e.g. `--mergeinfo="/branches/foo:1-10"`). All svn server versions can
        store this information (as a property), and svn clients starting from
-       version 1.5 can make use of it. 'git svn' currently does not use it
-       and does not set it automatically.
+       version 1.5 can make use of it. To specify merge information from multiple
+       branches, use a single space character between the branches
+       (`--mergeinfo="/branches/foo:1-10 /branches/bar:3,5-6,8"`)
++
+[verse]
+config key: svn.pushmergeinfo
++
+This option will cause git-svn to attempt to automatically populate the
+svn:mergeinfo property in the SVN repository when possible. Currently, this can
+only be done when dcommitting non-fast-forward merges where all parents but the
+first have already been pushed into SVN.
+
+--interactive;;
+       Ask the user to confirm that a patch set should actually be sent to SVN.
+       For each patch, one may answer "yes" (accept this patch), "no" (discard this
+       patch), "all" (accept all patches), or "quit".
+       +
+       'git svn dcommit' returns immediately if answer if "no" or "quit", without
+       commiting anything to SVN.
 
 'branch'::
        Create a branch in the SVN repository.
@@ -297,7 +326,7 @@ Any other arguments are passed directly to 'git log'
        Show what revision and author last modified each line of a file. The
        output of this mode is format-compatible with the output of
        `svn blame' by default. Like the SVN blame command,
-       local uncommitted changes in the working copy are ignored;
+       local uncommitted changes in the working tree are ignored;
        the version of the file in the HEAD revision is annotated. Unknown
        arguments are passed directly to 'git blame'.
 +
@@ -339,6 +368,8 @@ Any other arguments are passed directly to 'git log'
        Empty directories are automatically recreated when using
        "git svn clone" and "git svn rebase", so "mkdirs" is intended
        for use after commands like "git checkout" or "git reset".
+       (See the svn-remote.<name>.automkdirs config file option for
+       more information.)
 
 'commit-diff'::
        Commits the diff of two tree-ish arguments from the
@@ -680,6 +711,14 @@ svn.pathnameencoding::
        locales to avoid corrupted file names with non-ASCII characters.
        Valid encodings are the ones supported by Perl's Encode module.
 
+svn-remote.<name>.automkdirs::
+       Normally, the "git svn clone" and "git svn rebase" commands
+       attempt to recreate empty directories that are in the
+       Subversion repository.  If this option is set to "false", then
+       empty directories will only be created if the "git svn mkdirs"
+       command is run explicitly.  If unset, 'git svn' assumes this
+       option to be "true".
+
 Since the noMetadata, rewriteRoot, rewriteUUID, useSvnsyncProps and useSvmProps
 options all affect the metadata generated and used by 'git svn'; they
 *must* be set in the configuration file before any history is imported