Mercurial > hg
annotate tests/test-push-hook-lock.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 | 28e2e3804f2e |
children | 4e0b696a1cb3 |
rev | line source |
---|---|
12279 | 1 $ hg init 1 |
2 | |
3 $ echo '[ui]' >> 1/.hg/hgrc | |
4 $ echo 'timeout = 10' >> 1/.hg/hgrc | |
5 | |
6 $ echo foo > 1/foo | |
7 $ hg --cwd 1 ci -A -m foo | |
8 adding foo | |
9 | |
10 $ hg clone 1 2 | |
11 updating to branch default | |
12 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
13 | |
14 $ hg clone 2 3 | |
15 updating to branch default | |
16 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
17 | |
18 $ echo '[hooks]' >> 2/.hg/hgrc | |
19 $ echo 'changegroup.push = hg push -qf ../1' >> 2/.hg/hgrc | |
20 | |
21 $ echo bar >> 3/foo | |
22 $ hg --cwd 3 ci -m bar | |
23 | |
24 $ hg --cwd 3 push ../2 | |
25 pushing to ../2 | |
26 searching for changes | |
27 adding changesets | |
28 adding manifests | |
29 adding file changes | |
30 added 1 changesets with 1 changes to 1 files | |
31 |