<feed xmlns='http://www.w3.org/2005/Atom'>
<title>tools/git-repo.git/subcmds, branch v2.57</title>
<subtitle>Mirror of gerrit.googlesource.com/git-repo</subtitle>
<id>https://git.enea.com/cgit/tools/git-repo.git/atom?h=v2.57</id>
<link rel='self' href='https://git.enea.com/cgit/tools/git-repo.git/atom?h=v2.57'/>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/tools/git-repo.git/'/>
<updated>2025-07-21T21:51:36+00:00</updated>
<entry>
<title>sync: Default to interleaved mode</title>
<updated>2025-07-21T21:51:36+00:00</updated>
<author>
<name>Gavin Mak</name>
<email>gavinmak@google.com</email>
</author>
<published>2025-07-21T19:24:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/tools/git-repo.git/commit/?id=25858c8b16264beca64bf22b91588fa6694b2b07'/>
<id>urn:sha1:25858c8b16264beca64bf22b91588fa6694b2b07</id>
<content type='text'>
The previous default, "phased" sync (separate network and checkout
phases), can now be selected with `--no-interleaved`.

Bug: 421935613
Bug: 432082000
Change-Id: Ia8624daa609a28ea2f87f8ea4b42138d8b3e9269
Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/489681
Reviewed-by: Scott Lee &lt;ddoman@google.com&gt;
Tested-by: Gavin Mak &lt;gavinmak@google.com&gt;
Commit-Queue: Gavin Mak &lt;gavinmak@google.com&gt;
</content>
</entry>
<entry>
<title>sync: Improve UI and error reporting for interleaved mode</title>
<updated>2025-07-18T00:30:33+00:00</updated>
<author>
<name>Gavin Mak</name>
<email>gavinmak@google.com</email>
</author>
<published>2025-07-17T20:17:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/tools/git-repo.git/commit/?id=2e6d0881d9df9a61ac7dfa533b727ae9e9b4403e'/>
<id>urn:sha1:2e6d0881d9df9a61ac7dfa533b727ae9e9b4403e</id>
<content type='text'>
This fixes two issues:
1. the progress bar could show a count greater than the total if new projects were discovered mid-sync. Update the progress bar total dynamically
2. Make "Stall detected" error message more actionable

Bug: 432206932
Change-Id: Ie2a4ada5b1770cae0302fb06590641c522cbb7e7
Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/491941
Tested-by: Gavin Mak &lt;gavinmak@google.com&gt;
Reviewed-by: Scott Lee &lt;ddoman@google.com&gt;
Commit-Queue: Gavin Mak &lt;gavinmak@google.com&gt;
</content>
</entry>
<entry>
<title>sync: support post-sync hook in &lt;repo-hooks&gt;</title>
<updated>2025-07-01T23:11:50+00:00</updated>
<author>
<name>Kenny Cheng</name>
<email>chao.shun.cheng.tw@gmail.com</email>
</author>
<published>2025-06-02T13:55:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/tools/git-repo.git/commit/?id=82d500eb7aa93f9bff66a4358a08d2ba2d599550'/>
<id>urn:sha1:82d500eb7aa93f9bff66a4358a08d2ba2d599550</id>
<content type='text'>
Add support for a new hook type "post-sync" declared in the manifest using
&lt;repo-hooks&gt;. This allows executing a script automatically after a successful
`repo sync`.

This is useful for initializing developer environments, installing project-wide
Git hooks, generating configs, and other post-sync automation tasks.

Example manifest usage:

  &lt;project name="myorg/repo-hooks" path="hooks" revision="main" /&gt;
  &lt;repo-hooks in-project="myorg/repo-hooks" enabled-list="post-sync"&gt;
    &lt;hook name="post-sync" /&gt;
  &lt;/repo-hooks&gt;

The hook script must be named `post-sync.py` and located at the root of the
hook project.

The post-sync hook does not block `repo sync`; if the script fails, the sync
still completes successfully with a warning.

Test: Added `post-sync.py` in hook project and verified it runs after `repo sync`

Bug: b/421694721
Change-Id: I69f3158f0fc319d73a85028d6e90fea02c1dc8c8
Signed-off-by: Kenny Cheng &lt;chao.shun.cheng.tw@gmail.com&gt;
Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/480581
Reviewed-by: Scott Lee &lt;ddoman@google.com&gt;
Reviewed-by: Gavin Mak &lt;gavinmak@google.com&gt;
</content>
</entry>
<entry>
<title>init: Add environment variable for git-lfs</title>
<updated>2025-06-30T22:27:26+00:00</updated>
<author>
<name>Matt Moeller</name>
<email>moeller.matt@gmail.com</email>
</author>
<published>2024-09-04T18:55:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/tools/git-repo.git/commit/?id=21269c3eedc428610a5cab1494b2459a7e939fc7'/>
<id>urn:sha1:21269c3eedc428610a5cab1494b2459a7e939fc7</id>
<content type='text'>
Convenient way to always enable or disable git-lfs without having to
remember to put on the command line.

Useful if you want to ALWAYS have git-lfs enabled on your system when
you 'init' a new project.

Also useful if you are using the Jenkins repo plugin as it doesn't
provide an option for enabling git-lfs in its UI.

Change-Id: Ieb1bbe83de9c21523ab69b30fc5047c257d02731
Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/437661
Commit-Queue: Scott Lee &lt;ddoman@google.com&gt;
Reviewed-by: Gavin Mak &lt;gavinmak@google.com&gt;
Reviewed-by: Fatahillah Wk &lt;fatahillahwkwk@gmail.com&gt;
Reviewed-by: Scott Lee &lt;ddoman@google.com&gt;
Tested-by: Matt Moeller &lt;moeller.matt@gmail.com&gt;
Reviewed-by: Yingchun Li &lt;sword.l.dragon@gmail.com&gt;
</content>
</entry>
<entry>
<title>sync: Share final error handling logic between sync modes</title>
<updated>2025-06-23T23:06:34+00:00</updated>
<author>
<name>Gavin Mak</name>
<email>gavinmak@google.com</email>
</author>
<published>2025-06-18T03:15:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/tools/git-repo.git/commit/?id=99b5a17f2c951fe5979100c36e7e1dbb4c61b36c'/>
<id>urn:sha1:99b5a17f2c951fe5979100c36e7e1dbb4c61b36c</id>
<content type='text'>
Dedupe error reporting logic for phased and interleaved sync modes by
extracting it into _ReportErrors.

Error reporting will now distinguish between network and local failures
and lists the specific repos that failed in each phase.

Bug: 421935613
Change-Id: I4604a83943dbbd71d979158d7a1c4b8c243347d2
Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/484541
Tested-by: Gavin Mak &lt;gavinmak@google.com&gt;
Reviewed-by: Scott Lee &lt;ddoman@google.com&gt;
Commit-Queue: Gavin Mak &lt;gavinmak@google.com&gt;
</content>
</entry>
<entry>
<title>sync: Share manifest list update logic between sync modes</title>
<updated>2025-06-23T16:17:05+00:00</updated>
<author>
<name>Gavin Mak</name>
<email>gavinmak@google.com</email>
</author>
<published>2025-06-18T02:40:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/tools/git-repo.git/commit/?id=df3c4017f9a81e268b23728c273e1c8cd8957434'/>
<id>urn:sha1:df3c4017f9a81e268b23728c273e1c8cd8957434</id>
<content type='text'>
Extract the manifest update loop from _SyncPhased into a new
_UpdateManifestLists method and use it in both sync types.

Bug: 421935613
Change-Id: If499a3ce4a0bbb3c4641dba52ca5c1c82b11f16f
Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/484341
Reviewed-by: Scott Lee &lt;ddoman@google.com&gt;
Commit-Queue: Gavin Mak &lt;gavinmak@google.com&gt;
Tested-by: Gavin Mak &lt;gavinmak@google.com&gt;
</content>
</entry>
<entry>
<title>sync: Share self-update logic between sync modes</title>
<updated>2025-06-23T16:12:41+00:00</updated>
<author>
<name>Gavin Mak</name>
<email>gavinmak@google.com</email>
</author>
<published>2025-06-23T16:04:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/tools/git-repo.git/commit/?id=f7a3f99dc9e92556f3a0c588633b651439b5f7db'/>
<id>urn:sha1:f7a3f99dc9e92556f3a0c588633b651439b5f7db</id>
<content type='text'>
The logic for checking for repo self-updates lives in _FetchMain, which
is part of the "phased" sync path.

Extract this logic into a new _UpdateRepoProject helper method. Call
this common helper from _ExecuteHelper before either sync mode begins,
so the repo self-update check is always performed.

Bug: 421935613
Change-Id: I9a804f43fbf6239c4146be446040be531f12fc8a
Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/484041
Reviewed-by: Scott Lee &lt;ddoman@google.com&gt;
Commit-Queue: Gavin Mak &lt;gavinmak@google.com&gt;
Tested-by: Gavin Mak &lt;gavinmak@google.com&gt;
</content>
</entry>
<entry>
<title>sync: clarify job flags when using interleaved</title>
<updated>2025-06-18T22:23:59+00:00</updated>
<author>
<name>Gavin Mak</name>
<email>gavinmak@google.com</email>
</author>
<published>2025-06-18T21:38:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/tools/git-repo.git/commit/?id=6b8e9fc8db47a29dbb288cb2109a78e2518e616a'/>
<id>urn:sha1:6b8e9fc8db47a29dbb288cb2109a78e2518e616a</id>
<content type='text'>
--jobs-network and --jobs-checkout are ignored with --interleaved.

Bug: 421935613
Change-Id: Ib69413993c4f970b385bd09318972716e5ac3324
Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/485021
Tested-by: Gavin Mak &lt;gavinmak@google.com&gt;
Commit-Queue: Gavin Mak &lt;gavinmak@google.com&gt;
Reviewed-by: Scott Lee &lt;ddoman@google.com&gt;
</content>
</entry>
<entry>
<title>sync: Implement --interleaved sync worker</title>
<updated>2025-06-18T17:26:27+00:00</updated>
<author>
<name>Gavin Mak</name>
<email>gavinmak@google.com</email>
</author>
<published>2025-06-14T00:53:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/tools/git-repo.git/commit/?id=7b6ffed4ae3102b7c90592eeff8e28855cc25c11'/>
<id>urn:sha1:7b6ffed4ae3102b7c90592eeff8e28855cc25c11</id>
<content type='text'>
For each assigned project, the worker sequentially calls
Sync_NetworkHalf and Sync_LocalHalf, respecting --local-only and
--network-only flags. To prevent scrambled progress bars, all stderr
output from the checkout phase is captured (shown with --verbose).
Result objects now carry status and timing information from the worker
for state updates.

Bug: 421935613
Change-Id: I398602e08a375e974a8914e5fa48ffae673dda9b
Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/483301
Commit-Queue: Gavin Mak &lt;gavinmak@google.com&gt;
Reviewed-by: Scott Lee &lt;ddoman@google.com&gt;
Tested-by: Gavin Mak &lt;gavinmak@google.com&gt;
</content>
</entry>
<entry>
<title>sync: Add orchestration logic for --interleaved</title>
<updated>2025-06-17T23:13:36+00:00</updated>
<author>
<name>Gavin Mak</name>
<email>gavinmak@google.com</email>
</author>
<published>2025-06-17T17:54:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/tools/git-repo.git/commit/?id=b4b323a8bd02d52d060f7f6fa15ba045df5af5b2'/>
<id>urn:sha1:b4b323a8bd02d52d060f7f6fa15ba045df5af5b2</id>
<content type='text'>
Introduce the parallel orchestration framework for `repo sync
--interleaved`.

The new logic respects project dependencies by processing them in
hierarchical levels. Projects sharing a git object directory are grouped
and processed serially. Also reuse the familiar fetch progress bar UX.

Bug: 421935613
Change-Id: Ia388a231fa96b3220e343f952f07021bc9817d19
Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/483281
Commit-Queue: Gavin Mak &lt;gavinmak@google.com&gt;
Tested-by: Gavin Mak &lt;gavinmak@google.com&gt;
Reviewed-by: Scott Lee &lt;ddoman@google.com&gt;
</content>
</entry>
</feed>
