Subject: Re: [PATCH 0/7] Foreign VCS support

From: Pete Wyckoff <[email-masked]>
Date: Mon, 15 Jun 2009 09:26:41 -0700

[email-masked] wrote on Wed, 27 May 2009 14:15 -0400:
> This is a newly-generated and reorganized replacement for db/foreign-scm. 
> It applies to recent next.

I finally got a chance to look at this new version.  If you have
updates somewhere, let me know.  I had to fix up some merge issues
to put it on top of 1.6.3.2.

First, I'd prefer to use the non-P4-API version, but it doesn't
link:

vcs-p4/vcs-p4.o: In function `p4_integrate':
/u/petew/src/git/vcs-p4/vcs-p4.c:405: undefined reference to `_p4_call_unknown'
vcs-p4/vcs-p4.o: In function `p4_resolve':
/u/petew/src/git/vcs-p4/vcs-p4.c:412: undefined reference to `_p4_call_unknown'
vcs-p4/vcs-p4.o: In function `p4_edit':
/u/petew/src/git/vcs-p4/vcs-p4.c:423: undefined reference to `_p4_call_unknown'
vcs-p4/vcs-p4.o: In function `p4_submit':
/u/petew/src/git/vcs-p4/vcs-p4.c:479: undefined reference to `_p4_call_form_io'
vcs-p4/vcs-p4.o: In function `export_p4':
/u/petew/src/git/vcs-p4/vcs-p4.c:1008: undefined reference to `p4_write_tree'
/u/petew/src/git/vcs-p4/vcs-p4.c:1031: undefined reference to `p4_release_tree'

Next, it took me a while to discover the format of the remote entry.
Can you think of a way that "git remote add ..." could just work?
How to tell it the "vcs = p4" setting at add time, for instance?

[remote "upstream"]
        url = foo
        codeline = //depot/path/to/project
        fetch = +refs/p4/*:refs/remotes/upstream/*
        port = my-p4-server:1666
        vcs = p4

The command "git remote show upstream" complains about "foo" in the url.
Looking at your patches, the only place that sets remote->foreign_vcs is
remote's handle_config().  This isn't going to work for "git remote show
upstream" which calls transport_get() with a NULL remote.

Maybe use urls of the form "vcs-p4://depot/path/to/project".  Might
solve both issues.

It does work, and I have added two unrelated parts of the p4 repo in
the same git.  I'm going to try some much larger scale tests soon.

		-- Pete