[Removing Linus from CC, keeping the Git list -- or should we remove it?]
I'm not clear why it would be necesary, and it takes the only immutable
piece of information regarding a patch, and makes it variable.
Er... I'm not suggesting to make it variable, just to make it an
opaque blob of bytes (still immutable). I see from the examples you
give below that you agree that the format needs extending, so I
suspect we're actually agreeing here, just failing to communicate.
about having multiple ids per patch:
Or alternatively, we could have a one-to-one mapping between git IDs and
darcs IDs, which is what I'd do.
Okay, you've convinced me. It's much simpler that way, we'll see how
well it works.
The problem is that there is no sequence of alien versions that one can
differentiate. Git has a branched history, with each version that follows
a merge having multiple parents.
Yep. I've just realised that this morning. Is there some notion of
``primary parent'' as in Arch? Can a changeset have 0 parents?
If we do it right (automatically tagging like crazy people), darcs
users between themselves can cherry-pick all they like, without
introducing inconsistencies or losing interoperability with git.
You've lost me here. How can you cherry-pick if every tag depends on
the preceding patches? Or are you thinking of pulling just the patch
and not the tag -- in that case, what happens when you push to git a
Darcs patch that depends on a patch that originated with git?
I've started interfacing Haskell with git this week-end, that's
something we'll need whichever model we choose. We should be able to
start playing with actually modifying Darcs after next week-end.
Juliusz
From: Petr Baudis <hidden> Date: 2016-06-15 22:41:53
Dear diary, on Tue, Apr 19, 2005 at 02:20:55PM CEST, I got a letter
where Juliusz Chroboczek [off-list ref] told me that...
quoted
The problem is that there is no sequence of alien versions that one can
differentiate. Git has a branched history, with each version that follows
a merge having multiple parents.
Yep. I've just realised that this morning. Is there some notion of
``primary parent'' as in Arch? Can a changeset have 0 parents?
Yes, the root commit. Usually, there is only one, but there may be
multiple of them theoretically.
--
Petr "Pasky" Baudis
Stuff: http://pasky.or.cz/
C++: an octopus made by nailing extra legs onto a dog. -- Steve Taylor
From: David Roundy <hidden> Date: 2016-06-15 22:41:53
On Tue, Apr 19, 2005 at 02:25:18PM +0200, Petr Baudis wrote:
Dear diary, on Tue, Apr 19, 2005 at 02:20:55PM CEST, I got a letter
where Juliusz Chroboczek [off-list ref] told me that...
quoted
quoted
The problem is that there is no sequence of alien versions that one
can differentiate. Git has a branched history, with each version
that follows a merge having multiple parents.
Yep. I've just realised that this morning. Is there some notion of
``primary parent'' as in Arch? Can a changeset have 0 parents?
Yes, the root commit. Usually, there is only one, but there may be
multiple of them theoretically.
Incidentally (and completely off-topic for this thread), wouldn't there be
a sha1 tree hash corresponding to a completely empty directory, and
couldn't one use that as the parent for the root? Would there be any reason
to do so? Just a silly thought...
--
David Roundy
http://www.darcs.net
From: David Roundy <hidden> Date: 2016-06-15 22:41:53
On Tue, Apr 19, 2005 at 02:20:55PM +0200, Juliusz Chroboczek wrote:
[Removing Linus from CC, keeping the Git list -- or should we remove it?]
I think leaving much of this on git would be appropriate, since there are
issues of how to relate to git that should be relevant.
quoted
If we do it right (automatically tagging like crazy people), darcs
users between themselves can cherry-pick all they like, without
introducing inconsistencies or losing interoperability with git.
You've lost me here. How can you cherry-pick if every tag depends on
the preceding patches? Or are you thinking of pulling just the patch
and not the tag -- in that case, what happens when you push to git a
Darcs patch that depends on a patch that originated with git?
Yes, I'm thinking of pulling patches from one darcs repo to another. If we
cherry-pick in this way, we need to create a "git-tag" for each patch that
we pull without its associated tag. To git, this would look like two
separate changes that have the same commit log, except that they have
different parents and different commiters and commit dates.
I don't think this will be a problem for git, and since darcs will
recognize the two patches as the identical darcs patch (we'll need to put
somewhere in the git commit log a magic word indicating that this patch
originated in darcs), there won't be a problem for darcs either.
In case I haven't been clear (which seems likely), the scenario is that
darcs user 1 makes the following changes to his darcs version of a
git-based repository:
changes in 1: A -> B
tags in 1: A1 B1
Darcs user 2 wants B, but not A, and didn't do any development:
changes in 2: B
tags in 2: B2
User 2 pushes to git, and now git has (where P is the parent of both of the
above):
git:
P -> B/B2 (where B/B2 is the commit log with B2 as "committer info" and B
as the "author info and long comment)
User 1 pushes (everything) to git and merges the two (patch M, which has
two parents, B1 and B2:
git:
->B/B2---------
/ \
P--> A/A1 -> B/B1---> M
It's a little lame, and if user 2 doesn't do any real work, the git-using
person might be annoyed, but I think it's doable.
--
David Roundy
http://www.darcs.net