dart-sdk/tools/get_dot_git_folder.py
Jens Johansen a531b78369 [infra] Make worktrees work (again?)
History:

* Back in (pre June) 2018 worktrees in git just worked.
* https://dart-review.googlesource.com/c/sdk/+/48091 made it not work.
* https://github.com/dart-lang/sdk/issues/33619 was filed.
* https://dart-review.googlesource.com/c/sdk/+/127485 was created to
  work around the problem.

I don't know when it happened, but I can't make the above workaround
work (at least not anymore) --- adding a `default_git_folder` to my
`args.gn` has no effect.

This CL builds on it and automatically sets the correct path based on
a call to `git rev-parse --resolve-git-dir .git` which gives the
correct dir for both worktrees and non-worktrees.

Change-Id: I4dcf0445a44348621752fb88d4dab4c99c6ddd1d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/190522
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Reviewed-by: William Hesse <whesse@google.com>
Commit-Queue: Jens Johansen <jensj@google.com>
2021-03-16 08:54:15 +00:00

23 lines
646 B
Python
Executable file

#!/usr/bin/env python
# Copyright (c) 2021, the Dart project authors. Please see the AUTHORS file
# for details. All rights reserved. Use of this source code is governed by a
# BSD-style license that can be found in the LICENSE file.
#
# This python script is a wrapper around `git rev-parse --resolve-git-dir`.
# This is used for the build system to work with git worktrees.
import sys
import subprocess
def main():
if len(sys.argv) != 2:
raise Exception('Expects exactly 1 argument.')
return subprocess.call(
['git', 'rev-parse', '--resolve-git-dir', sys.argv[1]])
if __name__ == '__main__':
sys.exit(main())