git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [ANNOUNCE] git-svn - bidirection operations between svn and git

From
EHEduardo Pereira Habkost <ehabkost@mandriva.com>
Date
Feb 16, 2006, 13:42 UTC
Message-ID
<20060216134248.GC4271@duckman.conectiva>
In-Reply-To
<20060216073826.GA12055@hand.yhbt.net>
On Wed, Feb 15, 2006 at 11:38:26PM -0800, Eric Wong wrote:
> Hello, I've written a simple tool for interoperating between git and
> svn.  I wrote this so I could use git to work on projects where other
> developers use Subversion.  I really hate using svn, but some projects I
> work on require it, and svk isn't nearly as fast nor simple as git.

Great, I was doing some testing with git-svnimport for this, but I missed a tool to automatically commit to svn what I have in my GIT tree.

Show 5 quoted lines
> 
> git-svn does not replace git-svnimport, git-svnimport handles branches
> and tags automatically, but is too inflexible about repository layouts
> to be useful for a good number of projects I follow, and of course
> git-svnimport can't commit to Subversion repositories :)

I am already using git-svnimport to keep a "mirror" of some subversion repositories, here (automatically udpated on crontab). Do you plan to allow "integration" with repositories that are just clones of git-svnimport'ed repositories?

I plan to keep using git-svnimport and the standard git tools to work using the "svn mirror on git" as the main repository, but I plan to use "git-svn commit" to commit to the SVN repositories. I want this "commit tool" to not affect the current repository in any way, just like git-push: only send the commits to the remote repository and don't change anything in the local repository.

However, it seems that "git-svn commit" does some tasks assuming we are on a "git-svn aware" repository (e.g. the "resyncing" just after the commit). Would you accept patches to allow using "git-svn commit" to commit changes from any GIT repository (i.e. not "svn-git aware" repositories) to any SVN repository, just like "git-push" would work for a GIT repository?

However, I am not sure if the easier way would be changing git-svn to do this for me or writing a different script just for this task.

Show 12 quoted lines
> 
> git-svn only cares about a single branch/trunk in SVN[1], but you can
> use as many branches in git as you want.  This makes it much easier to
> use and allows it to handle just about any repository layout, not just
> those recommended in the SVN book/developers.
> 
> Although importing changesets from SVN is mostly a linear affair,
> committing to SVN is the opposite.  You may commit git tree objects in
> any order you want.  It simply clobbers the existing svn tree as
> 'git-checkout -f' would, but tags file renames/copies carefully so users
> on the SVN side can see them.  You can even do some wacky things with
> patch reordering.
Good, this is what I expect to be able to do when commiting to svn.
-- 
Eduardo
Previous: Eric WongNext: Eric Wong
Message 11 of 15 in “[ANNOUNCE] git-svn - bidirection operations between svn and git”
  1. Eric WongFeb 16, 2006
  2. Junio C HamanoFeb 16, 2006
  3. Aneesh KumarFeb 16, 2006
  4. Junio C HamanoFeb 16, 2006
  5. Aneesh KumarFeb 16, 2006
  6. Junio C HamanoFeb 16, 2006
  7. Aneesh KumarFeb 16, 2006
  8. Petr BaudisFeb 16, 2006
  9. Aneesh KumarFeb 16, 2006
  10. Eric WongFeb 16, 2006
  11. Eduardo Pereira HabkostFeb 16, 2006
  12. Eric WongFeb 16, 2006
  13. git-svn: fix revision order when XML::Simple is not loadedEric Wong, Feb 16, 2006
  14. Eric WongFeb 16, 2006
  15. git-svn: ensure fetch always works chronologically.Eric Wong, Feb 17, 2006

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.