Hi,
I am new to Git and using 1.6.6. I'm very interested by using it to mirror SVN
repositories. But I am running into troubles with the way git-svn handles SVN
credentials.
For one SVN I use I have some cached credentials that have only very restricted
write access. With svn command, I am using --username for every commit and this
cached credential is just ignored: I'm asked for a password.
With git-svn, I use --username at init/fetch but during dcommit --username is
ignored becaused of the cached credential. I can see in SVN logs that the
cached credential (which doesn't have the right to commit the mods I made) has
been used instead of the one specified during fetch. If I removed the cached
credential, the username specified with --username is taken into account (I'm
asked a password for it and it works) and if I ommit the --username, the one
specified at fetch time is used.
IMO, looks like a bug... Thanks in advance for any comment.
Cheers,
Michel
Michel Jouvin [off-list ref] wrote:
Hi,
I am new to Git and using 1.6.6. I'm very interested by using it to mirror SVN
repositories. But I am running into troubles with the way git-svn handles SVN
credentials.
For one SVN I use I have some cached credentials that have only very restricted
write access. With svn command, I am using --username for every commit and this
cached credential is just ignored: I'm asked for a password.
With git-svn, I use --username at init/fetch but during dcommit --username is
ignored becaused of the cached credential. I can see in SVN logs that the
cached credential (which doesn't have the right to commit the mods I made) has
been used instead of the one specified during fetch. If I removed the cached
credential, the username specified with --username is taken into account (I'm
asked a password for it and it works) and if I ommit the --username, the one
specified at fetch time is used.
IMO, looks like a bug... Thanks in advance for any comment.
Hi Michel,
I wonder if this is because we explicitly reread the config directory
when creating Git::SVN::Editor.
Does using --no-auth-cache work for you?
Otherwise, try pointing --config-dir= to an empty directory.
Or you can try this patch to force us to not reread the config_dir:
diff --git a/git-svn.perl b/git-svn.perl
index 650c9e5..280fd15 100755
--- a/git-svn.perl
+++ b/git-svn.perl
@@ -550,9 +550,6 @@ sub cmd_dcommit {
my %ed_opts = ( r => $last_rev,
log => get_commit_entry($d)->{log},
ra => Git::SVN::Ra->new($url),
- config => SVN::Core::config_get_config(
- $Git::SVN::Ra::config_dir
- ),
tree_a => "$d~1",
tree_b => $d,
editor_cb => sub {
We have a good reason to read config dirs there for getting auto-props,
though, so the above patch isn't going into git.git
--
Eric Wong
Eric Wong <normalperson <at> yhbt.net> writes:
quoted hunk
Hi Michel,
I wonder if this is because we explicitly reread the config directory
when creating Git::SVN::Editor.
Does using --no-auth-cache work for you?
Otherwise, try pointing --config-dir= to an empty directory.
Or you can try this patch to force us to not reread the config_dir:
diff --git a/git-svn.perl b/git-svn.perl
index 650c9e5..280fd15 100755
--- a/git-svn.perl
+++ b/git-svn.perl
@@ -550,9 +550,6 @@ sub cmd_dcommit {
my %ed_opts = ( r => $last_rev,
log => get_commit_entry($d)->{log},
ra => Git::SVN::Ra->new($url),
- config => SVN::Core::config_get_config(
- $Git::SVN::Ra::config_dir
- ),
tree_a => "$d~1",
tree_b => $d,
editor_cb => sub {
We have a good reason to read config dirs there for getting auto-props,
though, so the above patch isn't going into git.git
Hi Eric,
Thanks for your quick answer. Unfortunatly, none of the suggested workaround
worked for me... I even tried to clone again the SVN repository passing the
suggested options when cloning but no effect. BTW, does specifying --username
at cloning time should add something to some config file (like .git/config) ?
Cheers,
Michel