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

Re: Help using Git(-svn) for specific use case

From
Michael J Gruber <michaeljgruber+gmane@fastmail.fm>
Date
Sep 15, 2008, 15:12 UTC
Message-ID
<48CE7B71.4090702@fastmail.fm>
In-Reply-To
<aa2b76740809150550q724ab0f4x99a27fa21d90c0fb@mail.gmail.com>
Pico Geyer venit, vidit, dixit 15.09.2008 14:50:
Show 31 quoted lines
> Hi all.
> 
> I'd like to start using Git within our company. I'm still trying to
> determine if Git can work in our scenario.
> May be someone can offer some advice.
> Our scenario is as follows:
> We have a handful of developers which work at a branch office. This
> office has a rather slow internet connection.
> At the head office, we are (still) using a Subversion server to host
> our source code.
> At the branch office, we would like to do the following:
> * Fetch the latest code from the subversion server.
> * Push changes that we have made at the remote office back to upstream
> SVN server.
> * Be able to share source code changes locally (at the branch office)
> between developers.
> 
> The solution that I imagined is that we would setup a server (lets
> call it A) at the branch office with a Git repository, that all the
> developers can access.
> Developers would then clone the server repository A, make mods and
> then push changes back to A.
> It would be nice if git users could commit to a subversion branch.
> A merge master would then (as necessary) use svn dcommit to push the
> changes up to the svn server.
> Is this scenario possible?
> 
> From the git-svn man page: "git-clone does not clone branches under
> the refs/remotes/ hierarchy or any git-svn metadata, or config. So
> repositories created and managed with using git-svn should use rsync
> for cloning, if cloning is to be done at all."
That is true if you mean by "clone" a complete copy.
> Does that mean that one should not push changes to a repository that
> was created with "git svn clone ..."?
What matters is which branches you push into.

Your developers don't need to push/commit to svn, only into A, if I understood correctly. Do they need svn-metadata (besides svn revision numbers)? If not then the interaction between A and the developers can be a normal git workflow between git managed branches, and "git clone" will do fine.

Merge master at A could do the following:
- use git svn to keep the svn (remote) branches at A in sync with the
central subversion server
- push them to proper git branches in A, which get picked up by
developers' " git clone"
- maintain integration branches for integrating the changes coming fro
the developers
- dcommit the svn tracking branches back to the central svn server

Disadvantage: If changes are dcommitted to svn, synced back with git svn fetch, and then fetched/pull by the developers their commit will look different (addition git svn info in the commit message). This is similar to a workflow where you submit by e-mail and your integrated patches get a different sha1.

Advantage: For all developers, everything is just git. Only megre master needs to know git svn.

Cheers, Michael

Previous: Pico GeyerNext: Dmitry Potapov
Message 2 of 9 in “Help using Git(-svn) for specific use case”
  1. Pico GeyerSep 15, 2008
  2. Michael J GruberSep 15, 2008
  3. Dmitry PotapovSep 15, 2008
  4. Sverre RabbelierSep 15, 2008
  5. Michael J GruberSep 15, 2008
  6. Dmitry PotapovSep 15, 2008
  7. Pico GeyerSep 15, 2008
  8. Pico GeyerSep 17, 2008
  9. Dmitry PotapovSep 18, 2008

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.