Fix roll dep to use update-index
This change updates roll-dep to update submodule revision using `git update-index` instead of `git add` to stay consistent with our design.
Fix: 1406766
Change-Id: Ic23b9758a5893ac211d459a3c451bb102d4501a8
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4177144
Reviewed-by: Josip Sokcevic <sokcevic@chromium.org>
Auto-Submit: Aravind Vasudevan <aravindvasudev@google.com>
Commit-Queue: Josip Sokcevic <sokcevic@chromium.org>
diff --git a/roll_dep.py b/roll_dep.py
index 00fac4a..266bca4 100755
--- a/roll_dep.py
+++ b/roll_dep.py
@@ -210,12 +210,16 @@
# Pull the dependency to the right revision. This is surprising to users
# otherwise. The revision update is done before commiting to update
# submodule revision if present.
- for _head, roll_to, full_dir in sorted(rolls.values()):
+ for dependency, (_head, roll_to, full_dir) in sorted(rolls.items()):
check_call(['git', 'checkout', '--quiet', roll_to], cwd=full_dir)
# This adds the submodule revision update to the commit.
if is_submoduled():
- check_call(['git', 'add', full_dir])
+ check_call([
+ 'git', 'update-index', '--add', '--cacheinfo', '160000,{},{}'.format(
+ roll_to, dependency)
+ ],
+ cwd=current_dir)
check_call(['git', 'add', 'DEPS'], cwd=current_dir)
# We have to set delete=False and then let the object go out of scope so