- Sep 15, 2020
-
-
Dan Villiom Podlaski Christiansen authored
-
Dan Villiom Podlaski Christiansen authored
We currently write the map file to a BytesIO buffer, and _then_ write it to an atomic temporary file. However, the file is opened for atomic write, so the extra buffering doesn't really add anything other than overhead.
-
Dan Villiom Podlaski Christiansen authored
-
- Aug 18, 2020
-
-
Dan Villiom Podlaski Christiansen authored
Pulls aren't done in a transaction, so you can safely interrupt them, and get a partial result. Unfortunately, the commit map isn't updated, so once you resume the pull, it'll begin at the start at same commit as last, rather than where interrupted. With this tiny change, I can interrupt and resume long-running pulls at leisure. There's no test, since writing the required infrastructure seems a bit overkill.
-
- Aug 03, 2020
-
-
muxator authored
Before this change, if the user's log template included a call to gitnode() to show the git commit hash, invoking "hg incoming" on a git repository that had at least one incoming change failed with: AttributeError: 'overlayrepo' object has no attribute 'githandler' Since an incoming changeset should already have well defined git commit hashes, there is no apparent reason for which "hg incoming" should not have this information already. This change is a workaround that removes any reference to the hg-git structures from the incoming changeset, thus merely avoiding the crash. Fixes #239 (#239)
-
- Aug 06, 2020
-
-
Georges Racinet authored
-
Georges Racinet authored
We don't have a dedicated CI job for hg 5.5 right now, but the stable branch plays that role for now. Excerpts from a recent succesful pipeline: tests-py2-hg-stable: env HGRCPATH= python2 hg version Mercurial Distributed SCM (version 5.5+2-3d414dce2d40) tests-py3-hg-stable: env HGRCPATH= python3 hg version Mercurial Distributed SCM (version 5.5+2-3d414dce2d40)
-
- Jul 23, 2020
-
-
Manuel Jacob authored
Mercurial changeset 3b7aabd02e11 changed some code from `repo[ctx.p1().node()]` to `ctx.p1()`. `ctx.p1()` is using `ctx._parents`. The base class’s `_parents` returns instances of type `changectx` instead of `overlaychangectx`, leading to a crash later. Therefore we override `_parents` instead of `parents()`. The base class’s `parents()` method returns `self._parents`, so the return value of `parents()` is unchanged.
-
- Jun 11, 2020
-
-
Aay Jay Chan authored
Since Mercurial 4.8, repo.__getitem__ no longer accepts bookmark as argument.
-
- Jun 13, 2020
-
-
Manuel Jacob authored
-
- Jun 12, 2020
-
-
Manuel Jacob authored
In the previous code, if lazy-importing compat failed, the except clause was executed, raising a bogus error.
-
Manuel Jacob authored
We didn’t realize that this was broken because tests/test-illegal-contents.t is skipped on the CI. The change is similar to 503e9abfd50e. As can be seen in the doctest, this changes output of non-ASCII characters. I argue that the new output is better than the old because the old output exposed an implementation detail (the repr() function of Python) while the new output is something that can be copied and passed to other programs.
-
Manuel Jacob authored
The mistake was introduced in 9d735570322d and we didn’t realize because tests/test-illegal-contents.t is skipped on the CI.
-
- May 13, 2020
-
-
Georges Racinet authored
-
Georges Racinet authored
dev.heptapod.net has become foss.heptapod.net in the meanwhile
-
Georges Racinet authored
-
Georges Racinet authored
Before Mercurial 4.3, the pycompat module doesn't have enough features to support our current dual Python code. Also, the oldest version currently available in Heptapod CI happens to be 4.3. It's also a good opportunity to start using the 'minimumhgversion' field, making the extension refuse to load on unsupported version.
-
- May 10, 2020
-
-
Manuel Jacob authored
(folded with intermediate revision with new message by Georges Racinet) The previous conditional was wrong: in current Mercurial, 'co' is in principle not an integer. The condition on integer has been introduced for the port to py3, but does not change the fact that changelog.__contains__ is for integers. The original intent in a90fe3e8a8c3 was probably to exclude local repositories, but this had the side effect of setting `co=None` in all cases, hence affecting pulls having nothing to do with hg-git, as the new test demontstrates. What we really want is to force `co=None` only for remote Git repositories, for the reasons explained in the comment. Previous intermediate commit was cleanup: eliminate if statement with condition that is always true 'co' is never an integer. It’s always None or of type bytes. Apparently 'co' was of type int some years ago. A proper fix would require to fix the lookup() remote command or change hg to not require it e.g. when pulling with -r. For now, let’s remove the broken code and be honest about that we give up.
-
Manuel Jacob authored
-
Manuel Jacob authored
A test for a case mentioned in the comment will be added in a subsequent changeset.
-
Manuel Jacob authored
-
Manuel Jacob authored
-
- May 11, 2020
-
-
Manuel Jacob authored
Previously, reading from SSH subprocesses did’t return on Python 3. Dulwich passes bufsize=0 to subprocess.Popen (default on Python 2, but not Python 3). Doing the same in hg-git fixed the issue.
-
- May 10, 2020
-
-
Manuel Jacob authored
-
- Jun 03, 2019
-
-
Manuel Jacob authored
git_handler: support HTTP basic auth for the case when username and password are specified in the URL
-
- May 08, 2020
-
-
Manuel Jacob authored
-
- Mar 06, 2020
-
-
Manuel Jacob authored
It was at some point planned to allow unicode tags (5d45e0edfa3f). This plan was apparently discarded. To play safe, add an assert.
-
- Mar 07, 2020
-
-
Manuel Jacob authored
-
- May 08, 2020
-
-
Manuel Jacob authored
-
- May 03, 2020
-
-
Manuel Jacob authored
-
Manuel Jacob authored
-
Manuel Jacob authored
Dulwich decodes other parts of the path using the utf-8 codec since bcb4459da4. Before, it used the file system encoding. As a follow-up, we could do that conversion ourselves to get consistent behavior on all dulwich versions in case the file system encoding is not utf-8.
-
Manuel Jacob authored
-
Manuel Jacob authored
On Python 2, it worked fine before because str(b'123') == str(123).
-
- May 04, 2020
-
-
Manuel Jacob authored
-
- May 03, 2020
-
-
Manuel Jacob authored
-
- May 08, 2020
-
-
Manuel Jacob authored
-
- May 03, 2020
-
-
Manuel Jacob authored
-
- Mar 06, 2020
-
-
Manuel Jacob authored
-
Manuel Jacob authored
-