- Oct 17, 2017
-
-
Boris Feld authored
This makes pull consistent with the part used by push and provide us with a more compact representation of bookmarks. In addition, this opens the way for smarter bookmark exchanges (e.g. filtering by names or only sending the bookmark relevant to the pulled set, etc).
-
Boris Feld authored
This new argument requests a 'bookmarks' part from the server. It is meant to be used instead of the "listkeys" request.
-
Boris Feld authored
In this mode, the bookmarks changes are record in the 'bundleoperation' records instead of inflicted to the repository. This is necessary to use the part when pulling.
-
Boris Feld authored
This new attribute allows the codes requesting an unbundling to pass important information to individual part handlers. The current target use case is to allow for receiving 'bookmarks' part without directly updating local repository, but just recording the received data instead. This is necessary for pull where the remote bookmarks are processed locally. I expect the concept to be beneficial to other parts in the future. To clarify the bookmark behavior on pull, the remote bookmark value are not just taken -as-is- into the local repository. There is an extra step to detect bookmark divergence. The remote bookmarks data are stored until this processing happens.
-
Boris Feld authored
We use the new binary parts we introduced earlier to exchange bookmark. The payload is a bit more compact since we use binary and the length of bookmarks is no longer constrained to 255. .. fix:: Issue 5165 Bookmark, whose name is longer than 255, can again be exchanged again between 4.4+ client and servers.
-
Boris Feld authored
We are about to introduce a new way to push bookmark to server. We introduce the test variant before actually updating the exchange to help the output changes to stand out when it happens.
-
- Oct 15, 2017
-
-
Boris Feld authored
We are about to introduce an alternative way to push bookmark over bundle2.
-
- Oct 17, 2017
-
-
Boris Feld authored
Currently, pushing a bookmark update triggers a pushkey hooks. It is likely that users in the wild use such hooks to control bookmark movement. Using a non push-key mechanism to exchange bookmark means these hooks are no longer called, possibly breaking existing users setup. So we add explicit call to the pushkey hooks in the handling of the bundle2 part. This behavior can be disabled with a new config knob: 'server.bookmarks-pushkey-compat'.
-
- Oct 15, 2017
-
-
Boris Feld authored
This part can carry and apply bookmarks information. We start with adding the core behavior of the part. In its current form, the part is only suitable for push since it plain update the bookmark without consideration for the local state. Support of the behavior needed for pulling will be added in later changesets.
-
- Nov 13, 2017
-
-
Boris Feld authored
Before updating the actual bookmark update, we can start with updating the way we check for push race. Checking bookmarks state earlier is useful even if we still use pushkey. Aborting before the changegroup is added can save a lot of time.
-
- Oct 15, 2017
-
-
Boris Feld authored
This part checks that bookmarks are still at the node they are expected to be. This allows a pushing client to detect push race where the repository was updated between the time it discovered the server state and the time it managed to finish its push. Such checking already exists when pushing bookmark through pushkey. This new part can be inserted at the beginning of the bundle, triggering abort earlier. In addition, we would like to move away from pushey to push bookmark. A step useful to solve issue5165.
-
Boris Feld authored
Coming new bundle2 parts related to bookmark will use a binary encoding. It encodes a series of '(bookmark, node)' pairs. Bookmark name has a high enough size limit to not be affected by issue5165. (64K length, we are well covered)
-
- Dec 06, 2017
-
-
Augie Fackler authored
I'm not bothering with a check-code test because this is a weird construct that I didn't even know existed before it was breaking the BSD build, and it also appears to fail if /bin/sh is dash like it is on our Linux builder. Differential Revision: https://phab.mercurial-scm.org/D1605
-
Anton Shestakov authored
Just to give some context to the return values: vertex() needs to return two HTML elements as strings, <li> to be used as a background and a <li> to be shown in foreground. The latter was made obsolete recently when changesets started to be rendered server-side, but background elements are still useful for now.
-
Anton Shestakov authored
This way it's possible to call the original methods even if they were overridden.
-
Anton Shestakov authored
It was introduced in 0dba955c2636, but was already unused. I missed it in e46f0b653002.
-
- Dec 05, 2017
-
-
Augie Fackler authored
Now that all the complexity is in a Python script, we can just directly invoke the tool. Differential Revision: https://phab.mercurial-scm.org/D1599
-
Augie Fackler authored
Differential Revision: https://phab.mercurial-scm.org/D1598
-
- Dec 06, 2017
-
-
Augie Fackler authored
-
- Dec 05, 2017
-
-
Yuya Nishihara authored
-
Yuya Nishihara authored
This makes sure that dynamically-created class objects are isolated from local binding of repo instances. The type cache is moved to module level as it isn't tied to each instance.
-
Yuya Nishihara authored
The type object is shared across all filters. I'll add __repr__() instead.
-
Yuya Nishihara authored
Fixes the following error: stderr from 'hg log -T x -r only(.,'b'4.4.2'')': b' hg: parse error at 10: unexpected token: symbol'
-
- Nov 30, 2017
-
-
Yuya Nishihara authored
-
- Nov 28, 2017
-
-
Pulkit Goyal authored
Differential Revision: https://phab.mercurial-scm.org/D1526
-
- Nov 23, 2017
-
-
Pulkit Goyal authored
The precheck function is intended to be used before we start rewritting changesets. Differential Revision: https://phab.mercurial-scm.org/D1503
-
Pulkit Goyal authored
This patch adds a new file which will contain utility functions related to rewritting changesets. It also adds a utility function to check if the rewritting operation creates new unstable changesets and are we allowed to create them. This rewriteutil.py introduced in this patch and the utility functions added in the upcoming patches exists in the evolve extension are being ported from there. Differential Revision: https://phab.mercurial-scm.org/D1502
-
- Dec 05, 2017
-
-
Jun Wu authored
d600bda4a3e1 and fc0f3ed071fc added code to call `$PYTHON run-tests.py ...`. That will rebuild hg, is slow and could have other crashes from setup.py, like: Unable to find a working hg binary to extract the version from the repository tags Therefore use `run-tests.py -l` instead. Differential Revision: https://phab.mercurial-scm.org/D1595
-
- Nov 09, 2017
-
-
Pulkit Goyal authored
Previously reviewed as D1357. Differential Revision: https://phab.mercurial-scm.org/D1551
-
- Oct 04, 2017
-
-
Pulkit Goyal authored
This patch functions which can be used to read remotenames data from .hg/remotenames/. The logic for the function which reads the remotenames file is taken from the remotenames extension. Previously reviewed as D940. Differential Revision: https://phab.mercurial-scm.org/D1550
-
- Nov 10, 2017
-
-
Pulkit Goyal authored
The current storage logic every time overwrites the existing data with the new data. This patch adds test to demonstrate that. To fix this, we need to add logic to read existing remotenames data and merge with existing data which will be added in upcoming changesets. Previously reviewed as D1356. Differential Revision: https://phab.mercurial-scm.org/D1549
-
- Oct 04, 2017
-
-
Pulkit Goyal authored
This patch moves the functionality from remotenames extension to store remotenames to core. Storage format used by remotenames extension: A single file `.hg/remotenames` with an entry in each line where each line is of format: `node nametype remotepath/name` where nametype is either 'bookmarks' or 'branches'. This was not the best way to store data, so while moving to core the storage format was changed but yet not the final format. The storage format used by core after this patch will be: * A file for each type of name i.e. bookmarks and branches in .hg/remotenames/ directory * A version number on the top of the file. The version for current format is 0. * An entry in each line where each line is of the format `node\0remotepath\0name` The logic to sync with existing remotenames file and saving journals and other related things will be moved to core in next patches incrementally. Thanks to Ryan, Augie and Durham for suggestions on storage format. Previously reviewed as D939. Differential Revision: https://phab.mercurial-scm.org/D1548
-
Pulkit Goyal authored
This patch is the first patch of the series moving functionality from hgremotenames extension to core. There are lot of functionality in the extension which in the end enables us to store branch heads and bookmarks location on a server from which we are pulling or cloning from. This will help us in creating a better bookmark workflow where we can show user that a certain server has this bookmarks at this node. It will also introduce namespaces related to remote bookmarks and remote branches. This patch moves the functionality to pull branches and bookmarks from a server from which we are pulling to core behind config option `experimental.remotenames`. This patch adds a test which helps us to analyse whether things are working or not. We are currently writing things to ui, we will write information to files in upcoming patches. Previously reviewed as D937. Differential Revision: https://phab.mercurial-scm.org/D1547
-
- Dec 05, 2017
-
-
Boris Feld authored
When we replaced the patterns, glob was removed on the fixed line, it was a mistake and caused the pure-only build to fails. Differential Revision: https://phab.mercurial-scm.org/D1592
-
- Nov 30, 2017
-
-
Boris Feld authored
The $USUAL_COMPRESSIONS$ value that was taken was not compatible with the pure variant systems as zlib seems to not be available in these case. Differential Revision: https://phab.mercurial-scm.org/D1562
-
- Dec 03, 2017
-
-
Matt Harbison authored
I suspect some more of these are globbed out, so this is a bit of future proofing.
-
Matt Harbison authored
-
Matt Harbison authored
-
Matt Harbison authored
Automatic replacement seems better than trying to figure out a check-code rule. I didn't bother looking to see why the error message and file name is reversed in the annotate and histedit tests, based on Windows or not. I originally had this as a list of tuples, conditional on the platform. But there are a couple of 'No such file or directory' messages emitted by Mercurial itself, so unconditional is required for stability. There are also several variants of what I assume is 'connection refused' and 'unknown host' in test-clone.t and test-clonebundles.t for Docker, FreeBSD jails, etc. Yes, these are handled by (re) tags, but maybe it would be better to capture those strings in order to avoid whack-a-mole in future tests. All of this points to using a dictionary containing one or more strings-to-be-replaced values.
-
- Dec 04, 2017
-
-
Gregory Szorc authored
Without this change, setup.py always writes some files on every invocation. This prevents some builds from being a no-op when they should. And, since times can sneak into generated .pyc files, this prevents file content from being deterministic between builds. As part of the refactor, we treat file content as bytes. The only potential regression from this would be if some tool is looking at mtimes of the changed files to determine if further action should be taken. But I don't think anything critically important is keyed off the mtimes of these specific files. Differential Revision: https://phab.mercurial-scm.org/D1580
-