[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Issuezilla #175: Add new -F style option that only allows tag to mov

From: Derek Robert Price
Subject: Re: Issuezilla #175: Add new -F style option that only allows tag to move to newer revision
Date: Tue, 04 May 2004 15:20:51 -0400
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6) Gecko/20040413

Hash: SHA1

Geoffrey Lowney wrote:

> >But I am not sure how to check that one revision is a descendant of
> >another.  Does anyone know if there an existing function in the code
> >(similar to compare_revnums) that would work?  Or will I end up having
> >to implement a new is_descendant function to enforce this new rule?

You'll need a new function.  Put it in subr.c, probably.  Assuming
that rev1 & rev2 are already known to be valid revisions, something
like the following should suffice:

/* The following will return true if rev1 is an ancestor of rev2.  */
dotsrev1 = numdots (rev1);
dotsrev2 = numdots (rev2);
/* assert we were not passed any branches */
assert (dotsrev1 & 1);
assert (dotsrev2 & 1);
if (dotsrev1 == dotsrev2)
    p = strrchr (rev1, '.');
    *p++ = '\0';
    q = strrchr (rev2, '.');
    *q++ = '\0';
    return !strcmp (rev1, rev2) && strtol (p, NULL, 10) < strtol (q,
NULL, 10);
return strlen (rev1) < strlen (rev2) && strncmp (rev1, rev2, strlen

Not sure if you want to special-case vendor branches or not.
Unfortunately, in some cases it might be valid to move a tag from a
vendor branch to the trunk and in other cases it might not and the
difference won't be easily detectable,  I say leave it alone and let
the user use -F if they think they know what they are doing.

- --

Email: derek@ximbiot.com

Get CVS support at <http://ximbiot.com>!
Version: GnuPG v1.2.1 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org


reply via email to

[Prev in Thread] Current Thread [Next in Thread]