@@ -879,11 +879,19 @@ def execute(
879
879
Specifies a timeout in seconds for the git command, after which the process
880
880
should be killed. This will have no effect if `as_process` is set to True.
881
881
It is set to None by default and will let the process run until the timeout
882
- is explicitly specified. This feature is not supported on Windows. It's also
883
- worth noting that `kill_after_timeout` uses SIGKILL, which can have negative
884
- side effects on a repository. For example, stale locks in case of ``git gc``
885
- could render the repository incapable of accepting changes until the lock is
886
- manually removed.
882
+ is explicitly specified. Uses of this feature should be carefully
883
+ considered, due to the following limitations:
884
+
885
+ 1. This feature is not supported at all on Windows.
886
+ 2. Effectiveness may vary by operating system. ``ps --ppid`` is used to
887
+ enumerate child processes, which is available on most GNU/Linux systems
888
+ but not most others.
889
+ 3. Deeper descendants do not receive signals, though they may sometimes
890
+ terminate as a consequence of their parent processes being killed.
891
+ 4. `kill_after_timeout` uses ``SIGKILL``, which can have negative side
892
+ effects on a repository. For example, stale locks in case of ``git gc``
893
+ could render the repository incapable of accepting changes until the lock
894
+ is manually removed.
887
895
888
896
:param with_stdout:
889
897
If True, default True, we open stdout on the created process.
0 commit comments