Looking up revision number off a central repository

cowwoc cowwoc at bbs.darktech.org
Tue Aug 3 22:09:03 UTC 2010


  On 03/08/2010 5:00 PM, Matt Mackall wrote:
>
>>       Is there an easy way for non-technical users to find out whether a
>> changeset they are running is before or after another changeset? When
>> developers resolve a bug, QA needs to know whether the current version
>> they are testing is supposed to contain the bug fix or not. Revision
>> numbers make this easy.
> That assumption is incorrect, because history is not constrained to be
> linear. Consider:
>
> 0-1---3-4---6
>     \       /
>      2-----5
>
> Bug fix is in 2, tester is running 3. The only valid deduction about the
> relation between 2 and 3 from their numbers alone is that 2 is -not- a
> descendant of 3.
Hi Matt,

     I'm going to assume the above numbers correspond to changesets (not 
revision numbers) at different points. The tester would only see 
changesets visible off the central repository so in the above example 
they wouldn't ever see "2". They would only see changes made in "2" at 
point "6".

     I believe you understand what I'm asking for: a tester holding "3" 
or "6" needs to be able to ask, "does my current changeset contain point 2?"

> You could do:
>
>    $ hg log -P 3 -r 2
>
> ..which will show 2 if it's not an ancestor of 3, so if there's no
> output, you know 3 'contains' bugfix 2. That'll work with hashes too.
>
> (This is equivalent to -r '2 and not ::3' with hg 1.6's revsets.)
>
> You can make this into an alias like so:
>
> [aliases]
> missing = log -P . -r
>
> Then to figure out if some revision is 'missing' in the current version,
> you run:
>
>    $ hg missing tip   # yes
>    changeset:   11750:26e413f55b5e
>    tag:         tip
>    user:        Brodie Rao<brodie at bitheap.org>
>    date:        Tue Aug 03 13:02:11 2010 -0400
>    summary:     hgcia/color: remove star imports
>
>    $ hg missing 1.4   # no

     You are moving in the right direction but the testers are mostly 
non-technical users. They grab builds off Hudson (a simple website as 
far as they're concerned) and compare version numbers they see there 
against version numbers they see in JIRA. Historically a developer says 
"fixed in r503" and their hudson build reads "Revision 506" so they 
assume their build should contain the fix. If I move them to changesets 
they need an equally simple way of confirming that their build should 
contain a bugfix.

     Ideally I'm looking for a simple GUI or webpage they could use. The 
server "graph" feature is nice but it doesn't indicate the version 
number of each point so it isn't obvious how to compare whether one 
revision is an ancestor of another. Similarly, TortoiseHg requires you 
to jump through hoops to get at this information.

     Increasing revision numbers are inherently simple to work with. I'm 
more than happy to use changesets if I find a way to make them work.

Gili



More information about the Mercurial mailing list