git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] contrib/git-svn: accept configuration via repo-config
@ 2006-04-02  2:25 Eric Wong
  2006-04-02  2:25 ` [PATCH] contrib/git-svn: documentation updates Eric Wong
  0 siblings, 1 reply; 2+ messages in thread
From: Eric Wong @ 2006-04-02  2:25 UTC (permalink / raw)
  To: junkio, git; +Cc: Eric Wong

repo-config keys are any of the long option names minus the '-'
characters

Signed-off-by: Eric Wong <normalperson@yhbt.net>

---

 contrib/git-svn/git-svn.perl |   17 +++++++++++++++++
 1 files changed, 17 insertions(+), 0 deletions(-)

2eb11880066977d65ed7e51b04c2bfa97d217752
diff --git a/contrib/git-svn/git-svn.perl b/contrib/git-svn/git-svn.perl
index 59dd504..edfb19c 100755
--- a/contrib/git-svn/git-svn.perl
+++ b/contrib/git-svn/git-svn.perl
@@ -67,6 +67,23 @@ for (my $i = 0; $i < @ARGV; $i++) {
 
 my %opts = %{$cmd{$cmd}->[2]} if (defined $cmd);
 
+# convert GetOpt::Long specs for use by git-repo-config
+foreach my $o (keys %opts) {
+	my $v = $opts{$o};
+	my ($key) = ($o =~ /^([a-z\-]+)/);
+	$key =~ s/-//g;
+	my $arg = 'git-repo-config';
+	$arg .= ' --int' if ($o =~ /=i$/);
+	$arg .= ' --bool' if ($o !~ /=[sfi]$/);
+	$arg .= " svn.$key"; # $key only matches [a-z\-], always shell-safe
+	if (ref $v eq 'ARRAY') {
+		chomp(@$v = `$arg`);
+	} else {
+		chomp($$v = `$arg`);
+		$$v = 0 if $$v eq 'false';
+	}
+}
+
 GetOptions(%opts, 'help|H|h' => \$_help,
 		'version|V' => \$_version,
 		'id|i=s' => \$GIT_SVN) or exit 1;
-- 
1.3.0.rc1.g709a5

^ permalink raw reply related	[flat|nested] 2+ messages in thread

* [PATCH] contrib/git-svn: documentation updates
  2006-04-02  2:25 [PATCH] contrib/git-svn: accept configuration via repo-config Eric Wong
@ 2006-04-02  2:25 ` Eric Wong
  0 siblings, 0 replies; 2+ messages in thread
From: Eric Wong @ 2006-04-02  2:25 UTC (permalink / raw)
  To: junkio, git; +Cc: Eric Wong

contrib/git-svn/git-svn.txt:
	added git-repo-config key names for options
	fixed quoting of "git-svn-HEAD" in the manpage
	use preformatted text for examples

contrib/git-svn/Makefile:
	add target to generate HTML:
		http://git-svn.yhbt.net/git-svn.html

Signed-off-by: Eric Wong <normalperson@yhbt.net>

---

 contrib/git-svn/Makefile    |    3 +++
 contrib/git-svn/git-svn.txt |   41 ++++++++++++++++++++++++++++-------------
 2 files changed, 31 insertions(+), 13 deletions(-)

f8198e0b9da68024f7194067eb120bbf256a6111
diff --git a/contrib/git-svn/Makefile b/contrib/git-svn/Makefile
index a330c61..d7f1643 100644
--- a/contrib/git-svn/Makefile
+++ b/contrib/git-svn/Makefile
@@ -25,6 +25,9 @@ git-svn.1 : git-svn.xml
 git-svn.xml : git-svn.txt
 	asciidoc -b docbook -d manpage \
 		-f ../../Documentation/asciidoc.conf $<
+git-svn.html : git-svn.txt
+	asciidoc -b xhtml11 -d manpage \
+		-f ../../Documentation/asciidoc.conf $<
 test:
 	cd t && $(SHELL) ./t0000-contrib-git-svn.sh
 
diff --git a/contrib/git-svn/git-svn.txt b/contrib/git-svn/git-svn.txt
index 7a6e0c4..e18fcaf 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.
@@ -108,6 +110,8 @@ OPTIONS
 	Edit the commit message before committing to SVN.  This is off by
 	default for objects that are commits, and forced on when committing
 	tree objects.
+
+	repo-config key: svn.edit
 
 -l<num>::
 --find-copies-harder::
@@ -115,6 +119,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
 ----------------
@@ -133,6 +140,8 @@ ADVANCED OPTIONS
 	This option may be specified multiple times, once for each
 	branch.
 
+	repo-config key: svn.branch
+
 -i<GIT_SVN_ID>::
 --id <GIT_SVN_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::
@@ -161,26 +170,30 @@ COMPATIBILITY OPTIONS
 
 	Otherwise, do not enable this flag unless you know what you're
 	doing.
+
+	repo-config key: svn.noignoreexternals
 
 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 <tree-ish> [<tree-ish_2> ...]
-# 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
 -----------------
@@ -219,7 +232,7 @@ 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
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -232,22 +245,24 @@ This is how Yann Dirson tracked the trun
 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::
+------------------------------------------------------------------------
+	# 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::
+	# First we start tracking the old revisions:
 	GIT_SVN_ID=git-oldsvn git-svn init \
-	      https://svn.sourceforge.net/svnroot/ufoai/trunk
+			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::
+	# 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
 ----
-- 
1.3.0.rc1.g709a5

^ permalink raw reply related	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2006-04-02  2:25 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-04-02  2:25 [PATCH] contrib/git-svn: accept configuration via repo-config Eric Wong
2006-04-02  2:25 ` [PATCH] contrib/git-svn: documentation updates Eric Wong

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).