Hi Christian,

this might not the smartest way to do it but one possible way would be:

1) setup a tree less clone of the master repository, which is kept
current via a cron job (once a day or so)

$ hg clone -U http://hg.services.openoffice.org/hg/DEV300 <clean>

2) cd <clean>

3) hg incoming --template '{date|shortdate}\n'
http://hg.services.openoffice.org/hg/cws/<cws> | tail -n 1

gives you the date of the last changeset added to the cws which is not
in the master (yet).

You might want to use the mercurial "raw internal" date for easier
comparison, you can do so by exchanging 3) to

3) hg incoming --template '{date}\n'
http://hg.services.openoffice.org/hg/cws/<cws> | tail -n 1

this gives you something like

1251109813.00

which is nicely monotone increasing with time :-)


If you detect a "dirty" tree, just do a

hg clone -U <clean> <working>
cd <working>
hg pull http://hg.services.openoffice.org/hg/cws/<cws>
[two heads now, tip is the last changeset of the CWS]
hg update -r tip


Hope this helps,
  Heiner

Christian Lohmaier wrote:
> Hi *,
> 
> To make tinderbox aware of mercurial based cws, there's one problem I
> couldn't solve yet.
> 
> It isn't possible to query a remote repository for a log/changes.
> You'd have to create a local clone.
> 
> This obviously is not an option for tinderbox, given the size of the
> OOo repository and the amount of cws to deal with.
> 
> Querying the tip revision of a tree is as far as I could determine
> that something has changed, but
> * that only gives a new revision id
> * and thus doesn't allow to poinpoint it "the code to build has
> changed at <date>", and hence it isn't possible to flag the trees as
> dirty appropriately.[1]
> * it isn't possible to show the changes in the commit-data view (what
> files were affected by the changes)
> 
> So far I didn't come across a way to do a query like "show me all
> changes since $date" (i.e. "since last time I checked for changes")
> (or "after revision $revision")
> 
> The web-interface has a log-view, but the changeset selection is
> reverse. i.e. when I pass a revision to let's say
> http://hg.services.openoffice.org/hg/cws/writerfilter07/shortlog it
> displays revisions going to the past from that revision, i.e. it only
> shows changes up to the revision given, and not showing revisions
> starting with the revision. (apart from that it is not really parsing
> friendly - html files on one hand, but worse using "2 days ago" and
> similar instead of real dates, doesn't show the affected files wither)
> 
> So far, the Atom-feed is closest to a working solution (still cannot
> tell the affected files directly, but could parse the changeset URLs
> given in the feed
> http://hg.services.openoffice.org/hg/cws/writerfilter07/rev/48c05ac131c35a0cc61ed74e78efa7d69de57e94
> in raw-form
> http://hg.services.openoffice.org/hg/cws/writerfilter07/raw-rev/48c05ac131c35a0cc61ed74e78efa7d69de57e94
> 
> But that is too verbose since it shows the actual diffs, and not only
> the affected files (I'm not interested in the full diff of a rebase
> for example)
> 
> (BTW: why does the Atom feed use the long-as-long-can-be revision-IDs?
> rss feed/webpage itself uses the shorter form)
> 
> So: does anyone know a way to get something similar to
> 
> svn log --verbose --revision <date/revision> <repo-URL>
> 
> from mercurial without having to use local clones?
> 
> ciao
> Christian
> 
> [1] dirty means: The build results are not valid anymore, since the
> code has changed after the build has started. If you don't know when
> the code did change, you cannot tell whether the build did start
> before or after that change.
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
> 
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to