Wed, 17 Dec 2014 15:09:43 +0900 memctx: calculate manifest correctly with newly-removed files (issue4470)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Wed, 17 Dec 2014 15:09:43 +0900] rev 23589
memctx: calculate manifest correctly with newly-removed files (issue4470) Before this patch, "memctx._manifest" tries to get (and use normally) filectx also for newly-removed files, even though "memctx.filectx()" returns None for such files. To calculate manifest correctly even with newly-removed files, this patch does: - replace "man.iteritems()" for the loop by "self._status.modified" to avoid accessing itself to newly removed files this also reduces loop cost for large manifest. - remove files in "self._status.removed" from the manifest In this patch, amending is confirmed twice to examine both (1) newly removed files and (2) ones already removed in amended revision.
Wed, 17 Dec 2014 15:09:43 +0900 memctx: calculate manifest including newly added files correctly
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Wed, 17 Dec 2014 15:09:43 +0900] rev 23588
memctx: calculate manifest including newly added files correctly Before this patch, "memctx._manifest" calculates the manifest according to the 1st parent. This causes the disappearance of newly added files from the manifest. For example, if newly added files aren't listed up in manifest of memctx, they aren't listed up in "added" field of "status" returned by "ctx.status()", and "{diff()}" (= "patch.diff") in "committemplate" shows nothing for them. To calculate manifest including newly added files correctly, this patch puts newly added files (= ones in "self._status.added") into the manifest. Some details of changes for "test-commit-amend.t" in this patch: - "touch foo" is replaced by "echo foo > foo", because newly added empty file can't be shown in "diff()" output without "diff.git" configuration - amending is confirmed twice to examine both (1) newly added files and (2) ones already added in amended revision
Wed, 17 Dec 2014 15:09:38 +0900 memctx: calculate exact status being committed from specified files
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Wed, 17 Dec 2014 15:09:38 +0900] rev 23587
memctx: calculate exact status being committed from specified files Before this patch, "memctx._status" is initialized by "(files, [], [], [], [], [], [])" and this causes "memctx.modified" to include not only modified files but also added and removed ones incorrectly. This patch adds "_status" method to calculate exact status being committed according to "files" specified at construction time. Exact "_status" is useful to share/reuse logic of committablectx. This patch is also preparation for issues fixed by subsequent patches. Some details of changes for tests in this patch: - some filename lines are omitted in "test-convert-svn-encoding.t", because they are correctly listed up as "removed" files those lines are written out in "localrepository.commitctx" for "modified" and "added" files by "ui.note". - "| fixbundle" filterring in "test-histedit-fold.t" is omitted to check lines including "added" correctly "fixbundle" discards all lines including "added".
Fri, 12 Dec 2014 12:31:41 -0800 bundle2._processpart: forcing lower-case compare is no longer necessary
Eric Sumner <ericsumner@fb.com> [Fri, 12 Dec 2014 12:31:41 -0800] rev 23586
bundle2._processpart: forcing lower-case compare is no longer necessary Encoding whether or not a part is mandatory in the capitalization of the parttype is unintuitive and error-prone. This sequence of patches separates these concerns in the API to reduce programmer error and pave the way for a potential change in how this information is transmitted over the wire. Since the parttype and mandatory bit are separated in bundle2.unbundlepart (see previous patch), there is no longer a need to remove the mandatory bit before working with the parttype.
Fri, 12 Dec 2014 11:26:56 -0800 bundle2.unbundlepart: decouple mandatory from parttype
Eric Sumner <ericsumner@fb.com> [Fri, 12 Dec 2014 11:26:56 -0800] rev 23585
bundle2.unbundlepart: decouple mandatory from parttype Encoding whether or not a part is mandatory in the capitalization of the parttype is unintuitive and error-prone. This sequence of patches separates these concerns in the API to reduce programmer error and pave the way for a potential change in how this information is transmitted over the wire. This patch separates the two pieces of information when reading the part header so that it's unnecessary to know how they were combined during transmission.
Mon, 15 Dec 2014 15:00:54 -0500 memctx: fix manifest for removed files (issue4470)
Augie Fackler <augie@google.com> [Mon, 15 Dec 2014 15:00:54 -0500] rev 23584
memctx: fix manifest for removed files (issue4470) filectxfn returns None for removed files, so we have to check for None before computing the new file content hash for the manifest. Includes a test that proves this works, by demonstrating that we can show the diff of an amended commit in the committemplate.
Fri, 12 Dec 2014 15:53:17 -0500 convert: on svn failure, note libsvn version (issue4043)
Augie Fackler <raf@durin42.com> [Fri, 12 Dec 2014 15:53:17 -0500] rev 23583
convert: on svn failure, note libsvn version (issue4043) We have our own fast-path logic to see if something passes a sniff test for being a Subversion repository, but it's possible for a user to svnsync a repo using svn 1.8 and then use svn 1.7 bindings (as in the bug) to try and convert the repo. If we at least tell the user the version of libsvn that we used, they might get enough of a hint to check on their own for format incompatibilities between their svn{admin,sync} and the libsvn used by hg.
Mon, 15 Dec 2014 13:32:34 -0800 vfs: add a 'split' method
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 15 Dec 2014 13:32:34 -0800] rev 23582
vfs: add a 'split' method This method has the same behavior as the 'os.path.split' function, but having it in vfs will allow handling of tricky encoding situations in the future. In the same patch, we replace the use of 'os.path.split' in the transaction code.
Mon, 15 Dec 2014 13:27:46 -0800 vfs: add a 'reljoin' function for joining relative paths
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 15 Dec 2014 13:27:46 -0800] rev 23581
vfs: add a 'reljoin' function for joining relative paths The vfs.join method only works for absolute paths. We need something that works for relative paths too when transforming filenames. Since os.path.join may misbehave in tricky encoding situations, encapsulate the new join method in our vfs abstraction. The default implementation remains os.path.join, but this opens the door to other VFSes doing something more intelligent based on their needs. In the same go, we replace the usage of 'os.path.join' in transaction code.
Thu, 18 Dec 2014 12:07:03 -0600 subrepo: fix git subrepo ui argument
Matt Mackall <mpm@selenic.com> [Thu, 18 Dec 2014 12:07:03 -0600] rev 23580
subrepo: fix git subrepo ui argument
(0) -10000 -3000 -1000 -300 -100 -10 +10 +100 +300 +1000 +3000 +10000 tip