Mercurial > hg
view tests/test-rebase-issue-noparam-single-rev.t @ 18944:a9c443b3b240
unionrepo: read-only operations on a union of two localrepos
unionrepo is just like bundlerepo without bundles.
The implementation is very similar to bundlerepo, but I don't see any obvious
way to generalize it.
Some most obvious use cases for this would be log and diff across local repos,
as a kind of preview of pulls, for instance:
$ hg -R union:repo1+repo2 heads
$ hg -R union:repo1+repo2 log -r REPO1REV -r REPO2REV
$ hg -R union:repo1+repo2 log -r '::REPO1REV-::REPO2REV'
$ hg -R union:repo1+repo2 log -r 'ancestor(REPO1REV,REPO2REV)'
$ hg -R union:repo1+repo2 diff -r REPO1REV -r REPO2REV
This is going to be used in RhodeCode, and Bitbucket already uses something
similar. Having a core implementation would be beneficial.
author | Mads Kiilerich <madski@unity3d.com> |
---|---|
date | Fri, 18 Jan 2013 15:54:09 +0100 |
parents | f2719b387380 |
children | aa9385f983fa |
line wrap: on
line source
$ cat >> $HGRCPATH <<EOF > [extensions] > graphlog= > rebase= > > [phases] > publish=False > > [alias] > tglog = log -G --template "{rev}: '{desc}' {branches}\n" > EOF $ hg init a $ cd a $ echo c1 > c1 $ hg ci -Am c1 adding c1 $ echo c2 > c2 $ hg ci -Am c2 adding c2 $ echo l1 > l1 $ hg ci -Am l1 adding l1 $ hg up -q -C 1 $ echo r1 > r1 $ hg ci -Am r1 adding r1 created new head $ echo r2 > r2 $ hg ci -Am r2 adding r2 $ hg tglog @ 4: 'r2' | o 3: 'r1' | | o 2: 'l1' |/ o 1: 'c2' | o 0: 'c1' Rebase with no arguments - single revision in source branch: $ hg up -q -C 2 $ hg rebase saved backup bundle to $TESTTMP/a/.hg/strip-backup/*-backup.hg (glob) $ hg tglog @ 4: 'l1' | o 3: 'r2' | o 2: 'r1' | o 1: 'c2' | o 0: 'c1' $ cd .. $ hg init b $ cd b $ echo c1 > c1 $ hg ci -Am c1 adding c1 $ echo c2 > c2 $ hg ci -Am c2 adding c2 $ echo l1 > l1 $ hg ci -Am l1 adding l1 $ echo l2 > l2 $ hg ci -Am l2 adding l2 $ hg up -q -C 1 $ echo r1 > r1 $ hg ci -Am r1 adding r1 created new head $ hg tglog @ 4: 'r1' | | o 3: 'l2' | | | o 2: 'l1' |/ o 1: 'c2' | o 0: 'c1' Rebase with no arguments - single revision in target branch: $ hg up -q -C 3 $ hg rebase saved backup bundle to $TESTTMP/b/.hg/strip-backup/*-backup.hg (glob) $ hg tglog @ 4: 'l2' | o 3: 'l1' | o 2: 'r1' | o 1: 'c2' | o 0: 'c1' $ cd ..