From: Florian Achleitner <florian.achleitner2.6.31@gmail.com>
To: Jonathan Nieder <jrnieder@gmail.com>
Cc: Git Mailing List <git@vger.kernel.org>,
Ramkumar Ramachandra <artagnon@gmail.com>,
David Barr <davidbarr@google.com>,
Andrew Sayers <andrew-git@pileofstuff.org>,
Sverre Rabbelier <srabbelier@gmail.com>,
Dmitry Ivankov <divanorama@gmail.com>
Subject: Re: GSOC Proposal draft: git-remote-svn
Date: Thu, 12 Apr 2012 17:28:03 +0200 [thread overview]
Message-ID: <2104868.dCxFQtJHdU@flomedio> (raw)
In-Reply-To: <20120410171707.GA3869@burratino>
Hi!
Let's discuss the details as suggested by Jonathan! I will collect them in the
wiki, leading to a more elaborated project plan at the end.
It's rather hard to keep an overview over all the issues and pitfalls that may
exist, and over all the existing discussions, and whether there was an
solution or the issue is still unsolved.
So I want to create some collection of information with your support.
On Tuesday 10 April 2012 12:17:07 Jonathan Nieder wrote:
> Given the goal described here of an import with support for
> automatically detecting branches, here are some rough steps I imagine
> would be involved:
>
> . baseline: remote helper in C
>
> . option to import starting with a particular numbered revision.
> This would be good practice for seeing how options passed to
> "git clone -c" can be read from the config file.
Really -c? My installed git doesn't have that switch. Should it pass arguments
to the remote-helper?
>
> . option or URL schema to import a single project from a large
> Subversion repository that houses several projects. This would
> already be useful in practice since importing the entire Apache
> Software Foundation repository takes a while which is a waste
> when one only wants the history of the Subversion project.
>
> How should the importer handle Subversion copy commands that
> refer to other projects in this case?
Jonathan tried that, it's handled by svnrdump nicely.
>
> . automatically detecting trunk when importing a project with the
> standard layout. The trunk usually is not branched from elsewhere
> so this does not require copyfrom info. Some design questions
> come up here: should the remote helper import the entire project
> tree, too? (I think "yes", since copy commands that copy from
> other branches are very common and that would ensure the relevant
> info is available to git.) What should the mapping of git commit
> names to Subversion revision numbers that is stored in notes say
> in this case?
What does it mean, "import the entire project tree"? Importing other
directories than "trunk"?
About the mapping of git commits to svn refs .. I've seen the thread about the
marks-to-notes converter.
But can somebody please explain what it's for? There is this mark file
mentioned in the git-fast-import help page ..
Do we create two commits from one revision if it's some special case, like
modifying two branches at once?
>
> . detecting trunk and branches and exposing them as different remote
> branches. This is a small step that just involves understanding
> how remote helpers expose branches.
>
> . storing path properties and copyfrom information in the commits
> produced by the vcs-svn/ library. How should these be stored?
> For example, there could be a parallel directory structure
> in the tree:
>
> foo/
> bar.c
> baz/
> qux.c
> .properties/
> foo.properties
> foo/
> bar.c.properties
> baz/
> qux.c.properties
>
> with properites for <path> stored at .properties/<path>.properties.
> This strawman scheme doesn't work if the repository being imported
> has any paths ending with ".properties", though. Ideas?
This includes collecting which metadata we actually need to store? We could
probably collect a list of important svn properties.
Is there a general policy how to store additional metadata for git's helpers?
I guess it would live somewhere in the .git dir. (.git/info/ ?)
Dmitry mentioned the case where a git repository that fetched from svn is
cloned, and the cloned repo should be able to fetch from svn too. Is there an
exisiting concept about metadata in this case?
I'm not sure if storing this in a seperate directory tree makes sense, mostly
looking at performance. All these files will only contain some bytes, I guess.
Andrew, why did you choose JSON?
>
> . tracing history past branch creation events, using the now-saved
> copyfrom information.
>
> . tracing second-parent history using svn:mergeinfo properties.
This is about detection when to create a git merge-commit, right?
>
> In other words, in the above list the strategy is:
.. still to come..
Florian
next prev parent reply other threads:[~2012-04-12 15:28 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-03-19 14:42 GSoC intro Florian Achleitner
2012-03-19 21:31 ` Andrew Sayers
2012-03-20 12:25 ` Florian Achleitner
2012-03-20 13:19 ` David Barr
2012-03-21 21:16 ` Florian Achleitner
2012-03-26 11:06 ` Ramkumar Ramachandra
2012-03-27 13:53 ` Florian Achleitner
2012-04-02 8:30 ` GSOC Proposal draft: git-remote-svn Florian Achleitner
2012-04-02 11:00 ` Ramkumar Ramachandra
2012-04-02 20:57 ` Jonathan Nieder
2012-04-02 23:04 ` Jonathan Nieder
2012-04-03 7:49 ` Florian Achleitner
2012-04-03 18:48 ` Jonathan Nieder
2012-04-05 16:18 ` Tomas Carnecky
2012-04-02 22:17 ` Andrew Sayers
2012-04-02 22:29 ` Jonathan Nieder
2012-04-02 23:20 ` Andrew Sayers
2012-04-03 0:09 ` Jonathan Nieder
2012-04-03 21:53 ` Andrew Sayers
2012-04-03 22:21 ` Jonathan Nieder
2012-04-05 13:36 ` Florian Achleitner
2012-04-05 15:47 ` Dmitry Ivankov
2012-04-09 18:59 ` Stephen Bash
2012-04-10 17:17 ` Jonathan Nieder
2012-04-10 22:30 ` Andrew Sayers
2012-04-10 23:46 ` Jonathan Nieder
2012-04-11 19:09 ` Florian Achleitner
2012-04-14 22:57 ` Andrew Sayers
2012-04-11 15:51 ` Jakub Narebski
2012-04-11 15:56 ` Jonathan Nieder
2012-04-11 19:20 ` Florian Achleitner
2012-04-11 19:44 ` Dmitry Ivankov
2012-04-11 19:53 ` Jonathan Nieder
2012-04-11 22:43 ` Andrew Sayers
2012-04-12 9:02 ` Thomas Rast
2012-04-12 15:28 ` Florian Achleitner [this message]
2012-04-12 22:30 ` Andrew Sayers
2012-04-14 20:09 ` Florian Achleitner
2012-04-14 21:35 ` Andrew Sayers
2012-04-15 3:13 ` Stephen Bash
2012-04-13 19:19 ` Jonathan Nieder
2012-04-14 20:15 ` Florian Achleitner
2012-04-18 20:16 ` Florian Achleitner
2012-04-19 12:26 ` Florian Achleitner
2012-03-28 8:09 ` GSoC intro Miles Bader
2012-03-28 9:30 ` Dmitry Ivankov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=2104868.dCxFQtJHdU@flomedio \
--to=florian.achleitner2.6.31@gmail.com \
--cc=andrew-git@pileofstuff.org \
--cc=artagnon@gmail.com \
--cc=davidbarr@google.com \
--cc=divanorama@gmail.com \
--cc=git@vger.kernel.org \
--cc=jrnieder@gmail.com \
--cc=srabbelier@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).