diff options
author | Richard Purdie <richard@openedhand.com> | 2008-09-10 16:25:46 +0000 |
---|---|---|
committer | Richard Purdie <richard@openedhand.com> | 2008-09-10 16:25:46 +0000 |
commit | 22e0395343b2c182eefe3e34625713b6185ccbd5 (patch) | |
tree | da4c63187f1d0ac44e10c1768a8fdab74618aef9 /bitbake/lib | |
parent | f09c00eb870c400777b67e48907113f4a6ed2ada (diff) | |
download | poky-22e0395343b2c182eefe3e34625713b6185ccbd5.tar.gz |
bitbake hg fetcher: Add fix from Matt Hoosier
The Mercurial fetcher right now will fail when used to incrementally
fetch an update to a local clone of a repository already fetched at
some prior revision. The culprit is the sequence:
hg pull -r <rev>
hg update -C <rev>
A subtlety in the way that Mercurial stores its tags (in a normally
version-controlled file called .hgtags) has the side-effect that a
repository fetched at a tag "foo" will not actually contain a
new-enough copy of the .hgtags file to be self-aware of the foo tag's
existence.
The solution is just to get all the changesets in the repository on
incremental upgrades, so that the following "hg update" will be able
to resolve the tag.
git-svn-id: https://svn.o-hand.com/repos/poky/trunk@5170 311d38ba-8fff-0310-9ca6-ca027cbcb966
Diffstat (limited to 'bitbake/lib')
-rw-r--r-- | bitbake/lib/bb/fetch/hg.py | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/bitbake/lib/bb/fetch/hg.py b/bitbake/lib/bb/fetch/hg.py index c7d2e62c13..1cd5a8aa5c 100644 --- a/bitbake/lib/bb/fetch/hg.py +++ b/bitbake/lib/bb/fetch/hg.py | |||
@@ -94,7 +94,10 @@ class Hg(Fetch): | |||
94 | if command is "fetch": | 94 | if command is "fetch": |
95 | cmd = "%s clone %s %s://%s/%s %s" % (basecmd, " ".join(options), proto, hgroot, ud.module, ud.module) | 95 | cmd = "%s clone %s %s://%s/%s %s" % (basecmd, " ".join(options), proto, hgroot, ud.module, ud.module) |
96 | elif command is "pull": | 96 | elif command is "pull": |
97 | cmd = "%s pull %s" % (basecmd, " ".join(options)) | 97 | # do not pass options list; limiting pull to rev causes the local |
98 | # repo not to contain it and immediately following "update" command | ||
99 | # will crash | ||
100 | cmd = "%s pull" % (basecmd) | ||
98 | elif command is "update": | 101 | elif command is "update": |
99 | cmd = "%s update -C %s" % (basecmd, " ".join(options)) | 102 | cmd = "%s update -C %s" % (basecmd, " ".join(options)) |
100 | else: | 103 | else: |