git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Eric Wong <normalperson@yhbt.net>
To: "Eddy Petrișor" <eddy.petrisor@gmail.com>
Cc: git@vger.kernel.org
Subject: Re: [PATCH 0/3] git-svn-externals PoC (in a sh script)
Date: Fri, 29 Aug 2008 02:29:27 -0700	[thread overview]
Message-ID: <20080829092927.GA7500@yp-box.dyndns.org> (raw)
In-Reply-To: <60381eeb0808281702q3dc7543enff2b35ebbcc80d08@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 2898 bytes --]

Eddy Petrișor <eddy.petrisor@gmail.com> wrote:
> Hello,

Hi Eddy,

> I have started a while back working on support for svn:externals
> support for git-svn, but since I'm not that satisfied with the current
> status of the patch, I haven't modified git-svn itself and just left
> the sh script I made as a PoC as it was.
> 
> There's still work to be done to it, but I the current version is
> functional enough to be probably found useful by more people than
> myself.

Cool.

I definitely like the separate script approach.  Not sure if you read my
posts, your PoC seems inline with my thoughts on handling externals be
seen here:

http://article.gmane.org/gmane.comp.version-control.git/91283
http://article.gmane.org/gmane.comp.version-control.git/91293

> Current status follows:
> 
>     Current functionality:
>      - fetches all the externals of an already svn-fetched repo
>      - support for svn:externals refresh
>      - if the location of the external has changed, the current working
>        copy will be placed aside and a new directory will be created
>        instead
>      - if the remote URI is the same (maybe a verison bump, there will
>        be a 'git svn rebase'
>      - remove support (useful for testing purposes or clean restarts)
>      - avoid zombie externals at all costs - in some repos empty
>        svn:externals might exist; svn ignores such externals, so git should
>        do the same
> 
>     TODO:
>      - take into account the revision of an external, if it exists
>      - do not do deep svn cloning, to avoid legthy operations, just pull HEAD
>        (this actually needs changes in git-svn itself)

git svn clone -r<latest_revision_number> URL should work if you extract
the revision number easily.  Specifying "-rHEAD" will only work if the
branch of the external you're tracking was the last modified revision in
the repository, so it's not very useful.  "svn log" seems to have the
same semantics as git-svn as far as -rHEAD being useful or not...

>      - use/create shallow copies to git svn repos (one revision should be enough
>        for most externals)
>      - use submodules for externals

I'm not sure if mapping submodules to externals is a good idea
because externals don't require exact revisions and submodules do.
There's also an issue I was just made aware of two days ago with
submodules and git-svn that I haven't had time to work on.

Another user also privately reported a bug to me about git-svn having
trouble dcommitting when using submodules.  I've attached the test case
here in case you have any thoughts on how to handle this (I think the
easiest would be to ignore submodules on dcommit entirely).

> Any comments are welcome.

Also some small portability issues: "grep -q" is definitely unportable
in my experience.  There are probably some more that I am missing my eye
at this time of night...

-- 
Eric Wong

[-- Attachment #2: t9126-git-svn-submodule.sh --]
[-- Type: application/x-sh, Size: 988 bytes --]

  parent reply	other threads:[~2008-08-29  9:30 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-08-29  0:02 [PATCH 0/3] git-svn-externals PoC (in a sh script) Eddy Petrișor
2008-08-29  0:02 ` [PATCH] git svn: should not display zombie externals Eddy Petrișor
2008-08-29  0:02   ` [PATCH] First crude implementation of git-svn-externals Eddy Petrișor
2008-08-29  0:02     ` [PATCH] added a test frame for git-svn-externals.sh Eddy Petrișor
2008-08-29  0:16 ` [PATCH 0/3] git-svn-externals PoC (in a sh script) Eddy Petrișor
2008-08-29  9:29 ` Eric Wong [this message]
2008-09-01  6:20   ` RFH: git-svn and submodules Eric Wong
2008-09-10 13:56   ` [PATCH 0/3] git-svn-externals PoC (in a sh script) Eddy Petrișor
2008-09-10 13:59     ` Eddy Petrișor

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=20080829092927.GA7500@yp-box.dyndns.org \
    --to=normalperson@yhbt.net \
    --cc=eddy.petrisor@gmail.com \
    --cc=git@vger.kernel.org \
    /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).