<feed xmlns='http://www.w3.org/2005/Atom'>
<title>tools/git-repo.git/docs, branch v2.64</title>
<subtitle>Mirror of gerrit.googlesource.com/git-repo</subtitle>
<id>https://git.enea.com/cgit/tools/git-repo.git/atom?h=v2.64</id>
<link rel='self' href='https://git.enea.com/cgit/tools/git-repo.git/atom?h=v2.64'/>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/tools/git-repo.git/'/>
<updated>2026-05-14T16:03:56+00:00</updated>
<entry>
<title>docs: drop period in headers</title>
<updated>2026-05-14T16:03:56+00:00</updated>
<author>
<name>Mike Frysinger</name>
<email>vapier@google.com</email>
</author>
<published>2026-05-14T13:49:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/tools/git-repo.git/commit/?id=0129ac1c460381ea42e907901c256561d1d8f353'/>
<id>urn:sha1:0129ac1c460381ea42e907901c256561d1d8f353</id>
<content type='text'>
We don't do this in most places, so standardize the outliers.

Change-Id: I80c1ef16c5fa7355dcb7797bc8e56852b22c24d5
Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/583641
Tested-by: Mike Frysinger &lt;vapier@google.com&gt;
Commit-Queue: Mike Frysinger &lt;vapier@google.com&gt;
Reviewed-by: Gavin Mak &lt;gavinmak@google.com&gt;
</content>
</entry>
<entry>
<title>Add timing keyword argument for hooks</title>
<updated>2026-04-22T00:10:07+00:00</updated>
<author>
<name>Ram Peri</name>
<email>ramperi@google.com</email>
</author>
<published>2026-04-21T00:02:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/tools/git-repo.git/commit/?id=5af71ce907848a546199f0d64a5dfba1db8adca0'/>
<id>urn:sha1:5af71ce907848a546199f0d64a5dfba1db8adca0</id>
<content type='text'>
Measure the duration of the sync operation in the Execute method of the
Sync command and pass it to post-sync hooks as a standard keyword
argument (`sync_duration_seconds`).

Updates based on code review:
- Update _API_ARGS in hooks.py to allow sync_duration_seconds for post-sync hooks.
- Do not cast sync_duration_seconds to int for better granularity.
- Update docs/repo-hooks.md to document sync_duration_seconds.
- Add unit test for argument validation in test_hooks.py.

Test: Ran run_tests using venv python, all 554 tests passed.
Bug: TBD
Change-Id: Ie29e002a5d283460d993ad96c224dbf4b6d7985c
Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/575021
Tested-by: Arif Kasim &lt;arifkasim@google.com&gt;
Commit-Queue: Ram Peri &lt;ramperi@google.com&gt;
Reviewed-by: Arif Kasim &lt;arifkasim@google.com&gt;
Reviewed-by: Gavin Mak &lt;gavinmak@google.com&gt;
</content>
</entry>
<entry>
<title>manifest: Add `sync-strategy` attribute to project elements</title>
<updated>2026-04-09T19:09:28+00:00</updated>
<author>
<name>Gavin Mak</name>
<email>gavinmak@google.com</email>
</author>
<published>2026-04-01T23:03:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/tools/git-repo.git/commit/?id=00991bfb42c4f3b0b7a50aa8f475ac1c8369924b'/>
<id>urn:sha1:00991bfb42c4f3b0b7a50aa8f475ac1c8369924b</id>
<content type='text'>
The only supported sync-strategy is "stateless". The intent is to keep
the local workspace as small as possible by not keeping history during
syncs. This prevents disk space waste for projects with large binaries
where we only care about the current version.

A follow up change will implement the logic.

Bug: 498730431
Change-Id: I84a436a9ca2492893163c6cfda6c28dc62a568f0
Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/568462
Tested-by: Gavin Mak &lt;gavinmak@google.com&gt;
Reviewed-by: Mike Frysinger &lt;vapier@google.com&gt;
Commit-Queue: Gavin Mak &lt;gavinmak@google.com&gt;
</content>
</entry>
<entry>
<title>docs: windows: mention Developer Mode for symlinks</title>
<updated>2026-03-20T21:07:06+00:00</updated>
<author>
<name>Mike Frysinger</name>
<email>vapier@google.com</email>
</author>
<published>2026-03-19T18:44:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/tools/git-repo.git/commit/?id=ade45de7707e25d8a11b3beedf754caa44aba34d'/>
<id>urn:sha1:ade45de7707e25d8a11b3beedf754caa44aba34d</id>
<content type='text'>
This is probably better than recommending Administrator access.

Change-Id: Ic916f15fe03f7fa1e03c685265b4774bfc1279c2
Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/563581
Tested-by: Mike Frysinger &lt;vapier@google.com&gt;
Reviewed-by: Gavin Mak &lt;gavinmak@google.com&gt;
Commit-Queue: Mike Frysinger &lt;vapier@google.com&gt;
</content>
</entry>
<entry>
<title>docs: Document support for child elements in extend-project</title>
<updated>2026-02-19T16:38:56+00:00</updated>
<author>
<name>Jeffery Miller</name>
<email>jefferymiller@google.com</email>
</author>
<published>2026-02-18T22:50:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/tools/git-repo.git/commit/?id=0f01cd24e9a39524decd43532acd5040ca1686c1'/>
<id>urn:sha1:0f01cd24e9a39524decd43532acd5040ca1686c1</id>
<content type='text'>
Clarify the existence and behavior of child elements when added to
extend-project.

Change-Id: Id9f270166c8498d4051495b9a1f68360f66e9143
Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/553742
Reviewed-by: Mike Frysinger &lt;vapier@google.com&gt;
Tested-by: Jeffery Miller &lt;jefferymiller@google.com&gt;
Commit-Queue: Jeffery Miller &lt;jefferymiller@google.com&gt;
</content>
</entry>
<entry>
<title>manifest: Introduce `sync-j-max` attribute to cap sync jobs</title>
<updated>2026-02-06T21:32:28+00:00</updated>
<author>
<name>Gavin Mak</name>
<email>gavinmak@google.com</email>
</author>
<published>2026-02-03T20:59:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/tools/git-repo.git/commit/?id=a214fd31bd477dda2708ab9f3bc675081ceff696'/>
<id>urn:sha1:a214fd31bd477dda2708ab9f3bc675081ceff696</id>
<content type='text'>
Add a way for manifest owners to limit how many sync jobs run in
parallel.

Bug: 481100878
Change-Id: Ia6cbe02cbc83c9e414b53b8d14fe5e7e1b802505
Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/548963
Reviewed-by: Mike Frysinger &lt;vapier@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>docs: manifest-format: reformat spec to align the CDATA parts</title>
<updated>2025-12-02T18:43:56+00:00</updated>
<author>
<name>Mike Frysinger</name>
<email>vapier@google.com</email>
</author>
<published>2025-12-02T15:52:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/tools/git-repo.git/commit/?id=08964a16589efd16db7beaa845bc11ec6d89f94c'/>
<id>urn:sha1:08964a16589efd16db7beaa845bc11ec6d89f94c</id>
<content type='text'>
Most of the file was doing this, but we've been inconsistent when
adding new entries.  Realign all of them.

Change-Id: I99ddb3a1e859235b249b6f08731bdadad8086d4e
Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/532461
Reviewed-by: Gavin Mak &lt;gavinmak@google.com&gt;
Commit-Queue: Mike Frysinger &lt;vapier@google.com&gt;
Tested-by: Mike Frysinger &lt;vapier@google.com&gt;
</content>
</entry>
<entry>
<title>manifest: Propagate revision attribute through multiple levels of include</title>
<updated>2025-11-26T10:08:44+00:00</updated>
<author>
<name>Peter Kjellerstedt</name>
<email>pkj@axis.com</email>
</author>
<published>2025-11-08T05:42:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/tools/git-repo.git/commit/?id=3073a9004606eec6e3eff8a6e3260b81cd8f4e02'/>
<id>urn:sha1:3073a9004606eec6e3eff8a6e3260b81cd8f4e02</id>
<content type='text'>
Make sure a revision attribute for an include element is propagated
through multiple levels of manifest includes.

Change-Id: If37d65b0cd47da673719976598175d0eb6b7cbbe
Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/525341
Reviewed-by: Mike Frysinger &lt;vapier@google.com&gt;
Tested-by: Peter Kjellerstedt &lt;peter.kjellerstedt@axis.com&gt;
Commit-Queue: Peter Kjellerstedt &lt;peter.kjellerstedt@axis.com&gt;
Reviewed-by: Gavin Mak &lt;gavinmak@google.com&gt;
</content>
</entry>
<entry>
<title>manifest, project: Store project groups as sets</title>
<updated>2025-11-26T10:08:07+00:00</updated>
<author>
<name>Peter Kjellerstedt</name>
<email>pkj@axis.com</email>
</author>
<published>2025-11-08T01:36:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/tools/git-repo.git/commit/?id=75773b8b9d265bc8ef113586be5c3e2d36250983'/>
<id>urn:sha1:75773b8b9d265bc8ef113586be5c3e2d36250983</id>
<content type='text'>
This helps a lot when including common manifests with groups and they
use extend-project.

Change-Id: Ic574e7d6696139d0eb90d9915e8c7048d5e89c07
Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/525323
Reviewed-by: Gavin Mak &lt;gavinmak@google.com&gt;
Tested-by: Peter Kjellerstedt &lt;peter.kjellerstedt@axis.com&gt;
Reviewed-by: Mike Frysinger &lt;vapier@google.com&gt;
Commit-Queue: Peter Kjellerstedt &lt;peter.kjellerstedt@axis.com&gt;
</content>
</entry>
<entry>
<title>project: Use dicts to keep track of copyfiles and linkfiles</title>
<updated>2025-11-26T10:07:35+00:00</updated>
<author>
<name>Peter Kjellerstedt</name>
<email>pkj@axis.com</email>
</author>
<published>2025-11-07T23:06:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/tools/git-repo.git/commit/?id=412367bfafd9de014cfeb37475e0f97b1f6a2509'/>
<id>urn:sha1:412367bfafd9de014cfeb37475e0f97b1f6a2509</id>
<content type='text'>
This avoids copying/linking the same file/link multiple times if a
copyfile/linkfile element with the same values has been specifed
multiple times. This can happen when including a common manifest that
uses an extend-project element that has a copyfile/linkfile element.

This uses dicts rather than sets to store the copyfiles and linkfiles to
make sure the order they are specified in the manifest is maintained.
For Python 3.7+, maintaining the order that keys are added to dicts is
guaranteed, and for Python 3.6 it happened to be true.

The _CopyFile class and the _LinkFile class are changed to inherit from
NamedTuple to be able to store them in dicts.

Change-Id: I9f5a80298b875251a81c5fe7d353e262d104fae4
Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/525322
Reviewed-by: Mike Frysinger &lt;vapier@google.com&gt;
Reviewed-by: Gavin Mak &lt;gavinmak@google.com&gt;
Tested-by: Peter Kjellerstedt &lt;peter.kjellerstedt@axis.com&gt;
Commit-Queue: Peter Kjellerstedt &lt;peter.kjellerstedt@axis.com&gt;
</content>
</entry>
</feed>
