<feed xmlns='http://www.w3.org/2005/Atom'>
<title>tools/git-repo.git/project.py, 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:50:46+00:00</updated>
<entry>
<title>project: Use git rev-parse to read HEAD</title>
<updated>2025-07-21T21:50:46+00:00</updated>
<author>
<name>Gavin Mak</name>
<email>gavinmak@google.com</email>
</author>
<published>2025-07-21T20:07:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/tools/git-repo.git/commit/?id=52bab0ba277c173259664cccc78b8ffed0c89841'/>
<id>urn:sha1:52bab0ba277c173259664cccc78b8ffed0c89841</id>
<content type='text'>
Don't directly read `.git/HEAD`, git already has a command for this.

Bug: 432200791
Change-Id: Iba030650224143eb07c44da1fa56341d9deb4288
Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/492941
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>project: Use plumbing commands to manage HEAD</title>
<updated>2025-07-17T22:41:59+00:00</updated>
<author>
<name>Gavin Mak</name>
<email>gavinmak@google.com</email>
</author>
<published>2025-07-17T17:54:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/tools/git-repo.git/commit/?id=74edacd8e54a11c9358421894a5fcce04b02c47d'/>
<id>urn:sha1:74edacd8e54a11c9358421894a5fcce04b02c47d</id>
<content type='text'>
Don't directly manipulate `.git/HEAD` since it bypasses Git's internal
state management.

Bug: 432200791
Change-Id: I1c9264bcf107d34574a82b60a22ea2c83792951b
Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/491841
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>Fallback to full sync when depth enabled fetch of a sha1 fails</title>
<updated>2025-04-17T18:46:11+00:00</updated>
<author>
<name>Kaushik Lingarkar</name>
<email>kaushikl@qti.qualcomm.com</email>
</author>
<published>2025-04-08T00:08:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/tools/git-repo.git/commit/?id=a94457d1ce04b31f63734a8c8a1dc668668af39d'/>
<id>urn:sha1:a94457d1ce04b31f63734a8c8a1dc668668af39d</id>
<content type='text'>
In sha1 mode, when depth is enabled, syncing the revision from
upstream may not work because some servers only allow fetching
named refs. Fetching a specific sha1 may result in an error like
'server does not allow request for unadvertised object'. In this
case, attempt a full sync with depth disabled.

Bug: 410825502
Change-Id: If51bcf18b877cd9491706f5bc3d6fd13c0c3d4f3
Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/468282
Commit-Queue: Kaushik Lingarkar &lt;kaushikl@qti.qualcomm.com&gt;
Tested-by: Kaushik Lingarkar &lt;kaushikl@qti.qualcomm.com&gt;
Reviewed-by: Gavin Mak &lt;gavinmak@google.com&gt;
Reviewed-by: Mike Frysinger &lt;vapier@google.com&gt;
</content>
</entry>
<entry>
<title>project: use --netrc-optional instead of --netrc</title>
<updated>2025-04-10T18:30:42+00:00</updated>
<author>
<name>Gavin Mak</name>
<email>gavinmak@google.com</email>
</author>
<published>2025-04-10T18:09:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/tools/git-repo.git/commit/?id=97dc5c1bd9527c2abe2183b16a4b7ef037dc34a7'/>
<id>urn:sha1:97dc5c1bd9527c2abe2183b16a4b7ef037dc34a7</id>
<content type='text'>
Some users are reporting a "curl: (26) .netrc error: no such file"
message on sync caused by an change to curl behavior.
See https://github.com/curl/curl/issues/16163.

Use --netrc-optional which was introduced in curl version 7.9.8
released in 2002.

Bug: 409354839
Change-Id: I8365c6e806968a4ee765a7e023b4bced30489c20
Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/467026
Reviewed-by: Mike Frysinger &lt;vapier@google.com&gt;
Commit-Queue: Gavin Mak &lt;gavinmak@google.com&gt;
Tested-by: Gavin Mak &lt;gavinmak@google.com&gt;
Reviewed-by: Josip Sokcevic &lt;sokcevic@chromium.org&gt;
</content>
</entry>
<entry>
<title>Sync: Fix full submodule sync while shallow specified</title>
<updated>2025-03-13T16:12:45+00:00</updated>
<author>
<name>Albert Akmukhametov</name>
<email>arakmukhametov@salutedevices.com</email>
</author>
<published>2025-02-17T14:04:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/tools/git-repo.git/commit/?id=4b94e773efd36754f6c8649ad55b90d19a61107f'/>
<id>urn:sha1:4b94e773efd36754f6c8649ad55b90d19a61107f</id>
<content type='text'>
Git allows to clone submodules as shallow clone [1]. On the other
hand, when repo synchronize a projcet with submodules inside, it
ignores the shallow parameter.

When a project contains submodules, project.py parses the .gitmodules
file for URL and path. This parsing does not consider the shallow
option. Consequently, this parameter is not propgated to newly
created Project instance for that submodule.

[1] https://git-scm.com/docs/gitmodules#Documentation/gitmodules.txt-submoduleltnamegtshallow

Change-Id: I54fc9c69ae1b8e3cda2801202e3f0c7693b718d2
Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/454261
Tested-by: Albert Akmukhametov &lt;alb.02057@gmail.com&gt;
Commit-Queue: Albert Akmukhametov &lt;alb.02057@gmail.com&gt;
Reviewed-by: Josip Sokcevic &lt;sokcevic@chromium.org&gt;
Reviewed-by: Никита Сказкоподателев (Nask) &lt;skazkopodatelev@gmail.com&gt;
</content>
</entry>
<entry>
<title>Activate submodules</title>
<updated>2025-02-04T16:07:49+00:00</updated>
<author>
<name>Kaushik Lingarkar</name>
<email>kaushikl@qti.qualcomm.com</email>
</author>
<published>2024-12-17T23:16:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/tools/git-repo.git/commit/?id=99eca45eb2d578cd853bc5b0bf83f7b175e60b72'/>
<id>urn:sha1:99eca45eb2d578cd853bc5b0bf83f7b175e60b72</id>
<content type='text'>
This change moves further towards ensuring Git can understand repo's
submodules. 'submodule init' is used to make the submodules active[1].

[1] https://git-scm.com/docs/gitsubmodules#_active_submodules

Change-Id: I0c20ff1991101fc5be171e566d8fb644aab47200
Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/446182
Tested-by: Kaushik Lingarkar &lt;kaushikl@qti.qualcomm.com&gt;
Reviewed-by: Nasser Grainawi &lt;nasser.grainawi@oss.qualcomm.com&gt;
Reviewed-by: Josip Sokcevic &lt;sokcevic@chromium.org&gt;
Reviewed-by: Mike Frysinger &lt;vapier@google.com&gt;
</content>
</entry>
<entry>
<title>Use 'gitfile' in submodule checkouts</title>
<updated>2025-02-04T16:07:49+00:00</updated>
<author>
<name>Kaushik Lingarkar</name>
<email>kaushikl@qti.qualcomm.com</email>
</author>
<published>2024-12-17T21:49:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/tools/git-repo.git/commit/?id=66685f07ecf1b8bc228df66ea0d29fd7086e18e7'/>
<id>urn:sha1:66685f07ecf1b8bc228df66ea0d29fd7086e18e7</id>
<content type='text'>
This change takes another step towards ensuring Git can understand
repo's submodules to some extent. Replace the old '.git' symlink with
gitfile[1] pointing to the bare checkout of the submodule. This is
required for Git's 'recurse submodules' opts to work with repo's
submodules as '.git' is expected to be writable by Git when recursing
over submodules.

[1] https://git-scm.com/docs/gitrepository-layout#_description

Change-Id: I52d15451768ee7bd6db289f4d2b3be5907370d42
Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/446181
Tested-by: Kaushik Lingarkar &lt;kaushikl@qti.qualcomm.com&gt;
Reviewed-by: Josip Sokcevic &lt;sokcevic@chromium.org&gt;
Reviewed-by: Mike Frysinger &lt;vapier@google.com&gt;
Reviewed-by: Nasser Grainawi &lt;nasser.grainawi@oss.qualcomm.com&gt;
</content>
</entry>
<entry>
<title>Update internal filesystem layout for submodules</title>
<updated>2025-02-04T16:07:49+00:00</updated>
<author>
<name>Kaushik Lingarkar</name>
<email>kaushikl@qti.qualcomm.com</email>
</author>
<published>2024-12-17T20:49:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/tools/git-repo.git/commit/?id=cf9a2a2a76b332c89fef40e47f7ddb4e8c817ab9'/>
<id>urn:sha1:cf9a2a2a76b332c89fef40e47f7ddb4e8c817ab9</id>
<content type='text'>
Change the bare checkout directory for submodules from 'subprojects'
to 'modules'. Git expects bare submodule checkouts to be in the
'modules' directory. If old subproject directories are found, they
will be migrated to the new modules directory. This change is the
first step in ensuring Git can understand repo's submodules to some
extent.

Change-Id: I385029f1bb55d040616d970d6ffb4bb856692520
Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/444881
Tested-by: Kaushik Lingarkar &lt;kaushikl@qti.qualcomm.com&gt;
Reviewed-by: Josip Sokcevic &lt;sokcevic@chromium.org&gt;
</content>
</entry>
<entry>
<title>sync: Recover from errors during read-tree</title>
<updated>2025-01-16T17:19:45+00:00</updated>
<author>
<name>Josip Sokcevic</name>
<email>sokcevic@chromium.org</email>
</author>
<published>2025-01-15T23:43:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/tools/git-repo.git/commit/?id=db111d392407797e170355e1c0ec98e71d4a8278'/>
<id>urn:sha1:db111d392407797e170355e1c0ec98e71d4a8278</id>
<content type='text'>
When repo is initializing a git repository, it calls `git read-tree`.
During such operation, git is restoring workspace based on the current
index. However, some things can go wrong: a user can run out of disk
space, or, in case of partial clone, user may no longer reach the remote
host. That will leave affected repository in a bad state with partially
checked out workspace. The follow up repo sync won't try to fix such
state.

This change removes .git symlink, which will force the next `repo sync`
to redo Git repository setup.

Bug: b/363171216
Bug: b/390161127
Change-Id: I57db4b6cae0ef21826dc7cede4d3bf02cfc3d955
Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/447801
Reviewed-by: Scott Lee &lt;ddoman@google.com&gt;
Tested-by: Josip Sokcevic &lt;sokcevic@chromium.org&gt;
Commit-Queue: Josip Sokcevic &lt;sokcevic@chromium.org&gt;
</content>
</entry>
<entry>
<title>Remove gitc support from repo</title>
<updated>2024-12-03T22:27:56+00:00</updated>
<author>
<name>Josip Sokcevic</name>
<email>sokcevic@google.com</email>
</author>
<published>2024-12-03T21:29:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/tools/git-repo.git/commit/?id=cf411b3f03c3bd6001701136be5a874a85f1dc91'/>
<id>urn:sha1:cf411b3f03c3bd6001701136be5a874a85f1dc91</id>
<content type='text'>
gitc is no longer available.

Change-Id: I0cbfdf936832f2cdd4876104ae3cc5a6e26154e2
Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/444841
Reviewed-by: Gavin Mak &lt;gavinmak@google.com&gt;
Commit-Queue: Josip Sokcevic &lt;sokcevic@google.com&gt;
Tested-by: Josip Sokcevic &lt;sokcevic@google.com&gt;
</content>
</entry>
</feed>
