Eric Wong <normalperson@xxxxxxxx> writes: > Cool that it works for you, I've yet to get SVN:: libs working with a > repository I didn't have full read access to. I assume you have full > read access? Yes, I have full rw access on that part of the svn repos. The SVN:: libs are noticeably faster. Aside: For others tracking this: the "SVN::" libs in question are the Perl bindings that come with Subversion and are optionally built when you build from source. I wasted some google time searching CPAN for SVN:: so this might help someone. :-) > Outside of the SSL problems, the mis-commit isn't strictly user-error, > but git-svn is confusing in this case, as the documentation is unclear > about what git-svn should do in this case :x > I usually check with git log remotes/git-svn..HEAD instead of git > diff. Perhaps adding --no-merges would be more correct? I'm not sure how to reproduce the situation I was in, but what would git log have shown me that git diff didn't -- IOW, would it have been obvious that the commit op was going to add extra stuff and effectively undo a rev in svn? > Simple answer: instead of pull, you should've used git rebase. But I > don't think the documentation makes it clear at all. ... reads git-rebase man page... Ah, git-rebase does sound like what I want. > I've been really slacking on the git-svn documentation the past few > months, help would be much appreciated. I will try to send some doc patches. But I may have a few questions ;-) > Here's an in-depth explanation: > > This is what git-svn does when issued "commit remotes/git-svn..master": > 1. git-rev-list remotes/git-svn..master | tac => > 0681f7614c342b85b91d909ff02a9a966a44c3f4 > 0cccf3753b472b52a93154ed8021499055bb3923 > > 0cccf3753b472b52a93154ed8021499055bb3923 is the result of your > 'git pull . remotes/git-svn', correct? > And 0681f7614c342b85b91d909ff02a9a966a44c3f4 was made to git before > the pull. > > So this is what git-svn does, it commits the output of: > diff-tree f5ebf17f7e460d3bc3de72ab381c72dc76d26936 0681f7614c342b85b91d909ff02a9a966a44c3f4 > (f5eb... is remotes/git-svn at that point). > > If the SVN/SSL connection had not died, it would've then proceeded to > commit the output of: > > diff-tree 1b75d81a95da328f0b0d06b7562fdb48970b4c98 0cccf3753b472b52a93154ed8021499055bb3923 > Where 1b75d81a95da328f0b0d06b7562fdb48970b4c98 is the output of your > previous commit (r19467) I think I'm getting it. Thank you very much for providing these details. > Personally, I've been starting to favor 'git-svn commit-diff' myself > over 'git-svn commit', as it leaves cleaner history and makes git-svn > fetch results reproducable on different machines. > > [1] - unfortunately, I seem to have forgotten about it since I use > commit-diff more often these days :x I think commit-diff might be what I want to be using too, but I need to contribute some documentation for it before I can read the man page and start using it ;-) An example call to git-svn commit-diff would be very helpful, I suspect. I will have a look... While I'm thinking of it, it would be really nice for git-svn's commit and commit-diff to have a dry-run type of flag. Commits to your own git repos are easy to correct, but those made on some other public scm are less pretty. Cheers, + seth - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html