Sat, 10 Jul 2021 14:05:59 +0200 windows: use abspath in extensions
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 10 Jul 2021 14:05:59 +0200] rev 47625
windows: use abspath in extensions We replace `os.path.abspath` with `util.abspath`. This should solve more "drive capitalization" issue on Windows. Differential Revision: https://phab.mercurial-scm.org/D11062
Sat, 10 Jul 2021 14:05:49 +0200 windows: use abspath in commandserver
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 10 Jul 2021 14:05:49 +0200] rev 47624
windows: use abspath in commandserver We replace `os.path.abspath` with `util.abspath`. This should solve more "drive capitalization" issue on Windows. Differential Revision: https://phab.mercurial-scm.org/D11061
Sat, 10 Jul 2021 14:05:38 +0200 windows: use abspath in chgserver
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 10 Jul 2021 14:05:38 +0200] rev 47623
windows: use abspath in chgserver We replace `os.path.abspath` with `util.abspath`. This should solve more "drive capitalization" issue on Windows. Differential Revision: https://phab.mercurial-scm.org/D11060
Sat, 10 Jul 2021 13:46:24 +0200 windows: introduce a `util.abspath` to replace os.path.abspath
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 10 Jul 2021 13:46:24 +0200] rev 47622
windows: introduce a `util.abspath` to replace os.path.abspath This will let us mitigate the drive letter capitalization hell. See inline comment for details. Differential Revision: https://phab.mercurial-scm.org/D11059
Sat, 10 Jul 2021 13:10:18 +0200 windows: enforce upper case drive letter for getcwd in mercurial too
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 10 Jul 2021 13:10:18 +0200] rev 47621
windows: enforce upper case drive letter for getcwd in mercurial too This is affecting code that checks if a pull/push destination is the same as a configured one. For example the one creating divergent bookmark. Doing this fixes will help fixing `test-bookmarks.t` and `test-bookflow.t` on Windows. However, we also need to fix `abspath` invocation. Differential Revision: https://phab.mercurial-scm.org/D11058
Fri, 09 Jul 2021 23:38:24 +0200 hg-ssh: normalize the drive of the current working directory on windows
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 09 Jul 2021 23:38:24 +0200] rev 47620
hg-ssh: normalize the drive of the current working directory on windows For some reason os.getcwd() can return either `c:` or `C:`. We normalize this to `C:` and the like. This fix `test-ssh-bundle1.t` on windows. Differential Revision: https://phab.mercurial-scm.org/D11042
Sat, 10 Jul 2021 01:15:03 +0200 run-tests: enforce the drive letter from `getcwd` to upper case
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 10 Jul 2021 01:15:03 +0200] rev 47619
run-tests: enforce the drive letter from `getcwd` to upper case For some reason os.getcwd() can return either `c:` or `C:` depending of which binary you used on Windows. We normalize this to `C:` and the like. This fix `test-run-tests.t` on windows as the drive letter in "$TESTTMP" was "wrongly" set to 'c:/' if the test path wasn't explicitly specified. Differential Revision: https://phab.mercurial-scm.org/D11035
Mon, 12 Jul 2021 03:30:04 +0200 sigpipe-remote: simply delegate pipe forwarding to subprocess we can kill
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 12 Jul 2021 03:30:04 +0200] rev 47618
sigpipe-remote: simply delegate pipe forwarding to subprocess we can kill Instead of using sophisticated logics with thread a non blocking pipes, we simply spawn two new process in charge of reading the pipe and sending the result to the client. When it is time to cut the pipe we violently kill them without any remorse. This close the pipe regardless of any in progress `os.read` call. Ironically this is the very same things as what the initial shell setup was doing, but in Python. This makes the test pass run properly on Windows. This also reveal that the Windows behavior is broken as the transaction is not properly rollback. However this is an adventure for another time. Making the test behave properly was enough effort. Differential Revision: https://phab.mercurial-scm.org/D11087
Mon, 12 Jul 2021 03:29:21 +0200 sigpipe-remote: verify the script is IO are unbuffered
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 12 Jul 2021 03:29:21 +0200] rev 47617
sigpipe-remote: verify the script is IO are unbuffered We don't want to get stuck anywhere by buffers. Differential Revision: https://phab.mercurial-scm.org/D11086
Sun, 11 Jul 2021 23:08:00 +0200 sigpipe-remote: check environment variable sooner
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 11 Jul 2021 23:08:00 +0200] rev 47616
sigpipe-remote: check environment variable sooner Lets make sure we have everything before doing anything. Differential Revision: https://phab.mercurial-scm.org/D11085
Mon, 12 Jul 2021 00:14:11 +0200 test-sigpipe: run the hook using `sh`
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 12 Jul 2021 00:14:11 +0200] rev 47615
test-sigpipe: run the hook using `sh` This make the hook properly run on Windows. Differential Revision: https://phab.mercurial-scm.org/D11084
Thu, 10 Jun 2021 17:58:03 +0200 windows: add windows behavior on broken pager
Raphaël Gomès <rgomes@octobus.net> [Thu, 10 Jun 2021 17:58:03 +0200] rev 47614
windows: add windows behavior on broken pager Apparently, Windows has "better" behavior than Unix in this case. This is an edge case that led me down a rabbit hole, only to find a bug in the Python documentation... I am not planning on trying to reproduce the same behavior on Unix systems since it's not really useful, but other people are welcome to! Differential Revision: https://phab.mercurial-scm.org/D11000
Wed, 07 Jul 2021 23:04:19 +0530 mergestate: use dirstate.update_file API in recordupdates()
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 07 Jul 2021 23:04:19 +0530] rev 47613
mergestate: use dirstate.update_file API in recordupdates() Let's use the new single function to replace multiple different functions. This is part of dirstate API refactor to make it more clearer and generic so that it can be replicated in Rust. Differential Revision: https://phab.mercurial-scm.org/D11077
Fri, 09 Jul 2021 15:27:38 +0530 dirstate: add dedicated function for updating data of a file
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 09 Jul 2021 15:27:38 +0530] rev 47612
dirstate: add dedicated function for updating data of a file `dirstate.normal()` is too generic to be a user facing function for that. This is a part of effort to refactor dirstate APIs and make them clearer. Differential Revision: https://phab.mercurial-scm.org/D11076
Wed, 07 Jul 2021 19:36:14 +0200 dirstate: add a `update_file` function
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 07 Jul 2021 19:36:14 +0200] rev 47611
dirstate: add a `update_file` function This function is the other side of the `set_tracked`/`set_untracked` API revamp. It is to be used when the dirstate is changing its parents during and update or a merge. It states all the information we know about the file so that the dirstate can update its internal data. Unlike the `set_tracked`/`set_untracked` it has not regards for the information previously tracked in the tristate. Differential Revision: https://phab.mercurial-scm.org/D11075
Thu, 08 Jul 2021 04:29:36 +0200 resolve: use the `parentchange` context manager to apply merge action
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 08 Jul 2021 04:29:36 +0200] rev 47610
resolve: use the `parentchange` context manager to apply merge action In an ideal world, we would not have to do that. However, we are miles away from being ready to not have to do it. So we add this context manager alongside a long comment. This will help use to get to the point were have two distinct API with strict rules about when to call them. Differential Revision: https://phab.mercurial-scm.org/D11074
Thu, 08 Jul 2021 22:08:32 +0200 sparse: adjust the temporary includes within a `parentchange` context
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 08 Jul 2021 22:08:32 +0200] rev 47609
sparse: adjust the temporary includes within a `parentchange` context This is related to dirstate adjustment. Differential Revision: https://phab.mercurial-scm.org/D11033
Thu, 08 Jul 2021 21:26:21 +0200 amend: adjust the dirstate within a `parentchange` context
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 08 Jul 2021 21:26:21 +0200] rev 47608
amend: adjust the dirstate within a `parentchange` context The adjustment in the direct consequence of the amend and the associated parents change. Differential Revision: https://phab.mercurial-scm.org/D11032
Thu, 08 Jul 2021 21:20:37 +0200 dirstate: use the right internal API in a test script
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 08 Jul 2021 21:20:37 +0200] rev 47607
dirstate: use the right internal API in a test script The goal of the script it to perform arbitrary internal operation to create incorrect state, so lets make it clear. Differential Revision: https://phab.mercurial-scm.org/D11031
Thu, 08 Jul 2021 19:06:32 +0200 sparse: clear rules in the context of a `parentchanges` context
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 08 Jul 2021 19:06:32 +0200] rev 47606
sparse: clear rules in the context of a `parentchanges` context This is the same logic as the change we did for narrow. Differential Revision: https://phab.mercurial-scm.org/D11029
Thu, 08 Jul 2021 18:59:55 +0200 sparse: make sure we adjust the dirstate at the same time as the parent
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 08 Jul 2021 18:59:55 +0200] rev 47605
sparse: make sure we adjust the dirstate at the same time as the parent This is more correct and help our API split. Differential Revision: https://phab.mercurial-scm.org/D11028
Thu, 08 Jul 2021 18:51:45 +0200 narrow: update narrow spec within a dirstate.parentchange context
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 08 Jul 2021 18:51:45 +0200] rev 47604
narrow: update narrow spec within a dirstate.parentchange context Even if the parents does not changes, the parents' content we consider is changed. So this seems legitimate. Differential Revision: https://phab.mercurial-scm.org/D11027
Thu, 08 Jul 2021 18:30:24 +0200 revert: use `set_untracked` instead of `drop` when applicable
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 08 Jul 2021 18:30:24 +0200] rev 47603
revert: use `set_untracked` instead of `drop` when applicable This is the new shiny API. Differential Revision: https://phab.mercurial-scm.org/D11026
Thu, 08 Jul 2021 04:47:36 +0200 revert: use `set_untracked` when performing a revert
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 08 Jul 2021 04:47:36 +0200] rev 47602
revert: use `set_untracked` when performing a revert This is the new shiny API. Differential Revision: https://phab.mercurial-scm.org/D11022
Thu, 08 Jul 2021 04:26:30 +0200 mq: use `set_untracked` in `qrename`
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 08 Jul 2021 04:26:30 +0200] rev 47601
mq: use `set_untracked` in `qrename` This is the new shiny API. Differential Revision: https://phab.mercurial-scm.org/D11021
Thu, 08 Jul 2021 01:06:46 +0200 context: use `dirstate.set_untracked` in `context.forget`
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 08 Jul 2021 01:06:46 +0200] rev 47600
context: use `dirstate.set_untracked` in `context.forget` This is the new shiny API. Differential Revision: https://phab.mercurial-scm.org/D11020
Thu, 08 Jul 2021 00:54:40 +0200 dirstate: add a `set_untracked` method for "hg remove"-like usage
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 08 Jul 2021 00:54:40 +0200] rev 47599
dirstate: add a `set_untracked` method for "hg remove"-like usage This is a step further toward clarifying the semantic of various dirstate call. See the justification for adding `set_tracked` for details. Differential Revision: https://phab.mercurial-scm.org/D11019
Thu, 08 Jul 2021 04:32:31 +0200 mq: use `set_tracked` in `qrename`
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 08 Jul 2021 04:32:31 +0200] rev 47598
mq: use `set_tracked` in `qrename` This is the new shiny API. Differential Revision: https://phab.mercurial-scm.org/D11018
Thu, 08 Jul 2021 03:42:14 +0200 mq: update the dirstate and its parent within a `parentchange` context
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 08 Jul 2021 03:42:14 +0200] rev 47597
mq: update the dirstate and its parent within a `parentchange` context This is more correct, and move our plan of separated API for different dirstate usage forward. note: maybe the `parentchange` context manager should replace the dirstateguard entirely ? (in this case we should probably deprecated dirstateguard). Differential Revision: https://phab.mercurial-scm.org/D11017
Thu, 08 Jul 2021 01:20:46 +0200 context: use `dirstate.set_tracked` for `revert`
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 08 Jul 2021 01:20:46 +0200] rev 47596
context: use `dirstate.set_tracked` for `revert` This is the new shiny API. Differential Revision: https://phab.mercurial-scm.org/D11016
(0) -30000 -10000 -3000 -1000 -300 -100 -50 -30 +30 +50 +100 +300 +1000 +3000 tip