Mercurial > hgsubversion
annotate tools/common.sh @ 1236:f367a4462191
push: update to branch tip instead of tip
We previously updated to the repository tip after pushing a revision,
presumably on the assumption that tip would be the last revision we
just pushed. This assumption is flawed for high traffic repositories.
In particular, you previsouly would sometimes end up on a completley
unrelated commit if someone else commits to a different branch in
between the time we push a revision and pull it back from the server.
This changes to instead update to the branch tip of the branch we were
on at the beginning of the push. This should be either the revision
we just pushed or a linear descendent of the revision we just pushed,
with a fair degree of reliability.
author | David Schleimer <dschleimer@fb.com> |
---|---|
date | Sat, 30 Aug 2014 09:23:31 -0700 |
parents | 5071b8511572 |
children |
rev | line source |
---|---|
213
b1d2ea765516
tools: refactor stuff into common.sh, make verify-all-heads not revert.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
1 function verify_current_revision() |
b1d2ea765516
tools: refactor stuff into common.sh, make verify-all-heads not revert.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
2 { |
b1d2ea765516
tools: refactor stuff into common.sh, make verify-all-heads not revert.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
3 /bin/rm -rf * |
388
5071b8511572
tools: Fixes for verification that seemed to be needed.
Augie Fackler <durin42@gmail.com>
parents:
259
diff
changeset
|
4 exportcmd="svn export `hg svn info 2> /dev/null | grep '^URL: ' | sed 's/URL: //'`@`hg svn info | grep ^Revision | sed 's/.*: //;s/ .*//'` . --force" |
213
b1d2ea765516
tools: refactor stuff into common.sh, make verify-all-heads not revert.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
5 `echo $exportcmd` > /dev/null |
b1d2ea765516
tools: refactor stuff into common.sh, make verify-all-heads not revert.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
6 x=$? |
b1d2ea765516
tools: refactor stuff into common.sh, make verify-all-heads not revert.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
7 if [[ "$x" != "0" ]] ; then |
b1d2ea765516
tools: refactor stuff into common.sh, make verify-all-heads not revert.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
8 echo $exportcmd |
b1d2ea765516
tools: refactor stuff into common.sh, make verify-all-heads not revert.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
9 echo 'export failed!' |
b1d2ea765516
tools: refactor stuff into common.sh, make verify-all-heads not revert.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
10 return 255 |
b1d2ea765516
tools: refactor stuff into common.sh, make verify-all-heads not revert.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
11 fi |
216
3c87de482011
tools: fixes for wc outputting with spaces.
Augie Fackler <durin42@gmail.com>
parents:
213
diff
changeset
|
12 if [[ "`hg st | wc -l | python -c 'import sys; print sys.stdin.read().strip()'`" == "0" ]] ; then |
213
b1d2ea765516
tools: refactor stuff into common.sh, make verify-all-heads not revert.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
13 return 0 |
b1d2ea765516
tools: refactor stuff into common.sh, make verify-all-heads not revert.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
14 else |
b1d2ea765516
tools: refactor stuff into common.sh, make verify-all-heads not revert.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
15 if [[ $1 != "keep" ]] ; then |
b1d2ea765516
tools: refactor stuff into common.sh, make verify-all-heads not revert.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
16 revert_all_files |
b1d2ea765516
tools: refactor stuff into common.sh, make verify-all-heads not revert.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
17 fi |
b1d2ea765516
tools: refactor stuff into common.sh, make verify-all-heads not revert.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
18 return 1 |
b1d2ea765516
tools: refactor stuff into common.sh, make verify-all-heads not revert.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
19 fi |
b1d2ea765516
tools: refactor stuff into common.sh, make verify-all-heads not revert.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
20 } |
b1d2ea765516
tools: refactor stuff into common.sh, make verify-all-heads not revert.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
21 |
b1d2ea765516
tools: refactor stuff into common.sh, make verify-all-heads not revert.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
22 function revert_all_files() |
b1d2ea765516
tools: refactor stuff into common.sh, make verify-all-heads not revert.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
23 { |
b1d2ea765516
tools: refactor stuff into common.sh, make verify-all-heads not revert.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
24 hg revert --all |
b1d2ea765516
tools: refactor stuff into common.sh, make verify-all-heads not revert.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
25 hg purge |
b1d2ea765516
tools: refactor stuff into common.sh, make verify-all-heads not revert.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
26 } |