Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [egit-dev] Fwd: [Bug 326926] New: API to configure and import SCM URLs

By the way, the convention is that everything between the scm: and the first ; is the Maven format. So the cvs with partial path is part of the Maven standard, whereas there's no partial path for a scm:git: Maven handler. So we should represent a project's path with an OSGi like separator e.g. scm:git:...repo.git;path=bundle/org.foo and not with a colon. 

Alex

Sent from my iPhone 4

On 5 Oct 2010, at 10:27, Alex Blewitt <alex.blewitt@xxxxxxxxx> wrote:

> I think the cvs provider also permits a project name to be specified with ;project=
> 
> Speaking of cloning locations, I don't think they should be into the workspace by default for this operation. 
> Firstly, it's pretty rare (outside of Hello World examples) for there to be a 1-1 mapping between project and git repo. Secondly, Eclipse tends to suffer badly with nested projects, particularly when a parent is also used. Lastly, as noted below, there are questions on whether they should be shared or not. 
> 
> I think at clone time, we should prompt for a (non workspace) location and let the user decide on whether they should use the same repo or not. I can think of supporting cases where you'd want to do one or the other; deciding on one isn't the right thing to do. 
> 
> Alex
> 
> Sent from my iPhone 4
> 
> On 5 Oct 2010, at 10:12, Gunnar Wagenknecht <gunnar@xxxxxxxxxxxxxxx> wrote:
> 
>> Am 05.10.2010 10:42, schrieb Swindells, Thomas:
>>> I've looked hard and couldn't find any official scheme to do the above, hopefully someone will correct me and point to a page where it is defined...
>> 
>> As with all URLs it's up to the scheme implementor to make a decision.
>> For example, the Eclipse CVS plug-in came up with the following URI syntax.
>> 
>> scm:cvs:pserver:dev.eclipse.org:/cvsroot/eclipse:org.eclipse.core.runtime.compatibility.registry;tag=v20100520
>> 
>> Similar syntax could be used for EGit urls.
>> 
>> scm:git:<git-repo-url>:<path-within-repo>;tag=<tag>
>> 
>> Examples:
>> 
>> scm:git:git://git.eclipse.org/gitroot/gyrex/main.git:org.eclipse.core.runtime.compatibility.registry;tag=v20100520
>> 
>> scm:git:ssh://git.eclipse.org/gitroot/gyrex/main.git:org.eclipse.core.runtime.compatibility.registry;tag=v20100520
>> 
>> scm:git:http://git.eclipse.org/gitroot/gyrex/main.git:org.eclipse.core.runtime.compatibility.registry;tag=v20100520
>> 
>> 
>> I think the tricky thing is that Git does not support a partial clone of
>> repos (i.e. just a sub path) as CVS does. Thus, under the covers always
>> a clone must be performed. Alternatively, a UI could pop up and ask the
>> user for an existing local clone. However, then again switching to a
>> particular tag is problematic because only the whole repo must be switch
>> which could potentially cause conflicts in existing local repos.
>> 
>> The latter is indeed problematic. For example, imagine a user wants to
>> import two bundles at once. Both bundles come from the same repo but use
>> a different tag. IMHO EGit must create a second local clone in this case
>> in order to have both projects in the workspace at different tags. It's
>> not impossible to implement, though.
>> 
>> -Gunnar
>> 
>> -- 
>> Gunnar Wagenknecht
>> gunnar@xxxxxxxxxxxxxxx
>> http://wagenknecht.org/
>> _______________________________________________
>> egit-dev mailing list
>> egit-dev@xxxxxxxxxxx
>> https://dev.eclipse.org/mailman/listinfo/egit-dev


Back to the top