git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Keith Packard <keithp@keithp.com>
To: Jon Smirl <jonsmirl@gmail.com>
Cc: keithp@keithp.com, Pavel Roskin <proski@gnu.org>,
	git <git@vger.kernel.org>
Subject: Re: parsecvs and unnamed branches
Date: Fri, 16 Jun 2006 22:30:46 -0700	[thread overview]
Message-ID: <1150522246.6983.52.camel@neko.keithp.com> (raw)
In-Reply-To: <9e4733910606162115g2165212bgf32a2e328cce751a@mail.gmail.com>

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

On Sat, 2006-06-17 at 00:15 -0400, Jon Smirl wrote:

> >>But the real problem is why does it think the branches are in a loop?

I haven't figured it out yet either; mine didn't detect the loop though,
it just ended up spinning in the tsort code, unable to compute a valid
order to execute branches in. Something funky must be up with the
mozilla branches.

What this code does is find an order that will 'work' when computing
branch contents. The requirement is that the 'parent' branch be computed
before any 'child' branches. 

It does this with a nice quadratic algorithm, building a list of 'ready'
branches who have no 'unready' dependencies in any of the incoming file
objects. If there are conflicts where one incoming file shows branch 'B'
as the parent of branch 'A' while another shows branch 'A' as the parent
of branch 'B', the sorting cannot succeed.

Ideally, I'd figure out a way to eliminate the parent/child relationship
and just treat the branches as peers with a common ancestor. I haven't
figure out how to manage that yet; attempting to find the precise
divergence point where the child forks from the parent remains
complicated, it seems like trying to do that without a strong
parent/child relationship would be even more error prone.

Better error messsages here would clearly help discover which branches
were in conflict, and show the files causing problems.

-- 
keith.packard@intel.com

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 189 bytes --]

  parent reply	other threads:[~2006-06-17  5:31 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-06-16 21:44 parsecvs and unnamed branches Jon Smirl
2006-06-16 22:19 ` Keith Packard
2006-06-16 22:28   ` Jon Smirl
2006-06-16 22:39   ` Jon Smirl
2006-06-16 22:51     ` Keith Packard
2006-06-17  3:02   ` Jon Smirl
2006-06-17  3:12     ` Pavel Roskin
2006-06-17  3:31       ` Jon Smirl
2006-06-17  4:08         ` Pavel Roskin
2006-06-17  4:15           ` Jon Smirl
2006-06-17  4:35             ` Pavel Roskin
2006-06-17  5:30             ` Keith Packard [this message]
2006-06-17  5:51               ` Jon Smirl
2006-06-17 17:13                 ` Keith Packard

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=1150522246.6983.52.camel@neko.keithp.com \
    --to=keithp@keithp.com \
    --cc=git@vger.kernel.org \
    --cc=jonsmirl@gmail.com \
    --cc=proski@gnu.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).