Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 19 Aug 2014 16:46:17 -0700] rev 22268
obsstore: drop outdated comment
This comment was associated with a now-defunct line.
Augie Fackler <raf@durin42.com> [Thu, 21 Aug 2014 10:07:30 -0400] rev 22267
cvsps: add two more tiebreakers in cscmp
test-convert-cvs.t has been a little flaky for a while now. Add an
extra tiebreaker in cscmp so that all the cases in the test will sort
reliably.
Without this patch, test-convert-cvs.t failed after 346 runs. With
this patch, I stopped trying to get it to fail after 615 runs. While
not conclusive, that makes me pretty optimistic that this is a working
fix.
Yuya Nishihara <yuya@tcha.org> [Sat, 16 Aug 2014 17:59:26 +0900] rev 22266
annotate: abort early if no file is specified
This change is intended to move the getdate function near the opmap table.
Siddharth Agarwal <sid0@fb.com> [Wed, 20 Aug 2014 15:07:25 -0700] rev 22265
purge: avoid full walks when directories aren't purged
If match.traversedir is not None, we're forced to do full walks. However when
we aren't purging directories we don't need to set match.traversedir to
anything.
This speeds up non-full walks such as the one hgwatchman makes possible. For
mozilla-central with hgwatchman enabled, 'hg purge --files' goes from 0.88
seconds to 0.22.
Siddharth Agarwal <sid0@fb.com> [Thu, 21 Aug 2014 16:05:29 -0700] rev 22264
clone: for local clones, copy over filtered branchcaches as well (
issue4286)
Local clones copy/hardlink over files directly, so the branchcaches should all
be valid. There's a slight chance that a read operation would update one of the
branchcaches, but we hold a lock over the source repo so they shouldn't cause
an invalid branchcache to be copied over, just a different, valid one.
Siddharth Agarwal <sid0@fb.com> [Thu, 21 Aug 2014 15:58:32 -0700] rev 22263
clone: for local clones, copy branchcache from the right location (
issue4286)
The unfiltered branchcache is in .hg/cache/branch2, not
.hg/store/cache/branch2.
Augie Fackler <raf@durin42.com> [Wed, 20 Aug 2014 14:33:59 -0400] rev 22262
obsolete: avoid 2-argument form of enumerate, which was new in Python 2.6
Augie Fackler <raf@durin42.com> [Wed, 20 Aug 2014 13:21:41 -0400] rev 22261
repoview: use util.sha1() instead of hashlib.sha1()
45b5cd948a4d accidentally broke Python 2.4 compatibility, this fixes it.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 18 Aug 2014 17:17:23 -0700] rev 22260
debugobsolete: display parents information from markers
Now that we have a new field, we need a way to visualize it.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 18 Aug 2014 17:14:27 -0700] rev 22259
obsmarkers: add a `parentnodes` method to retrieve parent information
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 18 Aug 2014 16:28:44 -0700] rev 22258
obsstore: also store the 'parents' field on disk
We now store the `parents` field on disk. We use the same strategy as for
`date`: We stick it into the metadata. This is slow and dirty, but this is also
the only way we currently have.
At some point we'll have a new obsstore format to store this properly.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 18 Aug 2014 17:06:08 -0700] rev 22257
obsstore: drop 'date' from the metadata dictionary
We are extracting the `date` information from the metadata at read time.
However, we failed to remove it from the metadata returned in the markers. This
is now fixed.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 18 Aug 2014 16:17:16 -0700] rev 22256
createmarkers: automatically record the parent of pruned changesets
We need this information to build the set of relevant markers during
exchanges. This can only be done at the `createmarkers` level since
the `obsstore.create` function does not have a repo and therefore has
no access to the parent information.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 18 Aug 2014 16:12:29 -0700] rev 22255
obsstore: add a `parents` argument to obsstore.create
We need a way to pass the information to the function. Some guru told me that
what's arguments are made for.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 18 Aug 2014 16:08:44 -0700] rev 22254
obsstore: add a `parents` field
This field is intended to store the parent of the precursor. This is useful to
attach pruned changesets to a set of exchanged changesets. We currently just
add the fields with a None value. None stands for "no data recorded".
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 19 Aug 2014 14:42:08 -0700] rev 22253
obsstore: add some documentation about the marker fields
As the number of fields grow, it makes sense to start documenting their contents.
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Sat, 16 Aug 2014 10:43:59 +0900] rev 22252
transplant: change "editform" to distinguish merge commits from others
"editform" argument for "getcommiteditor" is decided according to the
format below:
EXTENSION[.COMMAND][.ROUTE]
- EXTENSION: name of extension
- COMMAND: name of command, if there are two or more commands in EXTENSION
- ROUTE: name of route, if there are two or more routes in COMMAND
This patch newly adds "normal" and "merge" as ROUTE, to distinguish
merge commits from other.
This patch adds 4 test patterns to test combination of "merge"(x2) and
"--continue"(x2).
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Sat, 16 Aug 2014 10:43:59 +0900] rev 22251
rebase: change "editform" to distinguish merge commits from others
"editform" argument for "getcommiteditor" is decided according to the
format below:
EXTENSION[.COMMAND][.ROUTE]
- EXTENSION: name of extension
- COMMAND: name of command, if there are two or more commands in EXTENSION
- ROUTE: name of route, if there are two or more routes in COMMAND
This patch newly adds "merge" as ROUTE, to distinguish merge commits
from other.
This patch passes bool as "ctxorbool" to "mergeeditform", because
working context has always 2 parents at this point. Dropping the
second parent of non-merging commits is executed in "concludenode".
Unlike other patches in this series (e.g. for "hg commit"), this patch
doesn't add "normal.normal"/"normal.merge" style ROUTEs, because there
is no "merge" case in "collapse" ROUTE.
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Sat, 16 Aug 2014 10:43:59 +0900] rev 22250
import: change "editform" to distinguish merge commits from others
"editform" argument for "getcommiteditor" is decided according to the
format below:
COMMAND[.ROUTE]
- COMMAND: name of command
- ROUTE: name of route, if there are two or more routes in COMMAND
This patch uses "normal.normal" and "normal.merge" as ROUTE of
"editform" instead of "normal", to distinguish merge commits from
other in "hg import" without "--bypass" case.
This patch assumes "editform" variations for "hg import" below:
import.normal.normal
import.normal.merge
import.bypass.normal
import.bypass.merge
Unlike other patches in this series, this patch uses "editor.sh"
instead of "checkeditform.sh" for the name of the script to check
"HGEDITFORM", because it has to do more than checking "HGEDITFORM".
To invoke editor forcibly in "test-import-merge.t", this patch creates
the patch not having patch description as "merge.nomsg.diff".
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Sat, 16 Aug 2014 10:43:59 +0900] rev 22249
commit: change "editform" to distinguish merge commits from other (--amend)
"editform" argument for "getcommiteditor" is decided according to the
format below:
COMMAND[.ROUTE]
- COMMAND: name of command
- ROUTE: name of route, if there are two or more routes in COMMAND
This patch uses "amend.normal" and "amend.merge" as ROUTE of
"editform" instead of "amend", to distinguish merge commits from other
in "hg commit --amend" case.
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Sat, 16 Aug 2014 10:43:59 +0900] rev 22248
commit: change "editform" to distinguish merge commits from others
"editform" argument for "getcommiteditor" is decided according to the
format below:
COMMAND[.ROUTE]
- COMMAND: name of command
- ROUTE: name of route, if there are two or more routes in COMMAND
This patch uses "normal.normal" and "normal.merge" as ROUTE of
"editform" instead of "normal", to distinguish merge commits from
others in "hg commit" without "--amend" case.
This patch assumes "editform" variations for "hg commit" below:
commit.normal.normal
commit.normal.merge
commit.amend.normal
commit.amend.merge
"mergeeditform" is factored out for subsequent patches. It takes
"ctxorbool" argument, because context object can't be passed in some
cases.
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 16 Aug 2014 10:19:26 -0700] rev 22247
test-ssh: verify that stderr from remote is printed (
issue4336)
The issue fixed in the previous patch was uncovered by implementing an
extension that printed additional output locally before the push command
completed. This test emulates that.
If this change is applied before the previous patch, the test will fail
on Linux, with the local output being printed before the "remote: "
lines.
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 16 Aug 2014 10:28:59 -0700] rev 22246
posix: implement readpipe using non-blocking I/O (
issue4336)
On Linux, fstat().st_size of a pipe always returns 0, even if the
pipe has data available for reading. This meant that reading from
and subsequently printing the stderr pipe content after wireproto
commands over SSH meant that available data wasn't being printed.
We now implement pipe reading on POSIX by doing a non-blocking
read for all available data.
Gregory Szorc <gregory.szorc@gmail.com> [Fri, 15 Aug 2014 20:02:18 -0700] rev 22245
platform: implement readpipe()
Reading all available data from a pipe has a platform-dependent
implementation.
This patch establishes platform.readpipe() by copying the
inline implementation in sshpeer.readerr(). The implementations
for POSIX and Windows are currently identical. The POSIX
implementation will be changed in a subsequent patch.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 15 Aug 2014 19:18:21 -0700] rev 22244
exchange: remove duplicated addition to pushop.stepdone
Not sure how it got there but it is useless.
Augie Fackler <raf@durin42.com> [Mon, 18 Aug 2014 20:23:37 -0400] rev 22243
exchange: drop superfluous parens
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 15 Aug 2014 19:03:42 -0700] rev 22242
push: add bookmarks to the unified bundle2 push
We use the `pushkey` part to exchange bookmark updates within the unified
bundle2 push. Note that this only applies on update (moving a bookmark known on both
sides) since bookmark export (creation of a new bookmark on remote) is apparently
done outside of the _push function.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 15 Aug 2014 19:03:33 -0700] rev 22241
test-bundle2: add bookmark movement to the push test
If we add bookmarks to bundle2, we need a way to test the new code.
Tests are changed beforehand to highlight that inclusion of bookmarks in bundle
does not introduce any behavior changes.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 15 Aug 2014 18:40:57 -0700] rev 22240
push: use stepsdone to control bookmark push
If bookmark are to be integrated in the unified bundle2, we need a way to disable
the old-style push.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 15 Aug 2014 18:39:39 -0700] rev 22239
push: move bookmark discovery with other discovery steps
The discovery of necessary bookmark updates is now done within the "discovery
phase". This opens the door to the inclusion of bookmarks in a unified bundle2
push.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 15 Aug 2014 18:02:54 -0700] rev 22238
pushbookmark: split an ultra-long line into a saner version
We make a temporary variable for the remote bookmark data and we do not expand
all elements from `bookmark.compare` since we are going to use only one.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 25 Jun 2014 00:02:17 +0100] rev 22237
revert: drop dead code for untracked files
Untracked files are handled through status now.