Skip to content

Commit 37b348d

Browse files
christian-schillingLMG
authored andcommitted
Don't create rewrite refs
Those are not needed with newer versions of git anymore. In case this leads to unexpected problems, hide it behind an env variable as a transitional step so it can still be enabled. Change-Id: no-rewrite-refs
1 parent 5c8e972 commit 37b348d

11 files changed

+38
-78
lines changed

josh-proxy/src/bin/josh-proxy.rs

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -296,20 +296,22 @@ async fn do_filter(
296296
&filter_spec,
297297
);
298298

299-
let glob = format!(
300-
"refs/josh/rewrites/{}/{:?}/r_*",
301-
josh::to_ns(&upstream_repo),
302-
filter.id()
303-
);
304-
for reference in transaction.repo().references_glob(&glob).unwrap() {
305-
let reference = reference.unwrap();
306-
let refname = reference.name().unwrap();
307-
transaction.repo().reference(
308-
&temp_ns.reference(refname),
309-
reference.target().unwrap(),
310-
true,
311-
"rewrite",
312-
)?;
299+
if let Ok(_) = std::env::var("JOSH_REWRITE_REFS") {
300+
let glob = format!(
301+
"refs/josh/rewrites/{}/{:?}/r_*",
302+
josh::to_ns(&upstream_repo),
303+
filter.id()
304+
);
305+
for reference in transaction.repo().references_glob(&glob).unwrap() {
306+
let reference = reference.unwrap();
307+
let refname = reference.name().unwrap();
308+
transaction.repo().reference(
309+
&temp_ns.reference(refname),
310+
reference.target().unwrap(),
311+
true,
312+
"rewrite",
313+
)?;
314+
}
313315
}
314316

315317
let mut headref = headref;

josh-proxy/src/lib.rs

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -237,17 +237,19 @@ pub fn process_repo_update(repo_update: RepoUpdate) -> josh::JoshResult<String>
237237
)?;
238238

239239
if new_oid != reapply {
240-
transaction.repo().reference(
241-
&format!(
242-
"refs/josh/rewrites/{}/{:?}/r_{}",
243-
repo_update.base_ns,
244-
filterobj.id(),
245-
reapply
246-
),
247-
reapply,
248-
true,
249-
"reapply",
250-
)?;
240+
if let Ok(_) = std::env::var("JOSH_REWRITE_REFS") {
241+
transaction.repo().reference(
242+
&format!(
243+
"refs/josh/rewrites/{}/{:?}/r_{}",
244+
repo_update.base_ns,
245+
filterobj.id(),
246+
reapply
247+
),
248+
reapply,
249+
true,
250+
"reapply",
251+
)?;
252+
}
251253
let text = format!("REWRITE({} -> {})", new_oid, reapply);
252254
tracing::debug!("{}", text);
253255
resp.push(text);

tests/proxy/workspace.t

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -242,10 +242,6 @@
242242
| | | `-- HEAD
243243
| | `-- %3Aworkspace=ws
244244
| | `-- HEAD
245-
| |-- rewrites
246-
| | `-- real_repo.git
247-
| | `-- 7bd92d97e96693ea7fd7eb5757b3580002889948
248-
| | `-- r_fa3b9622c1bcc8363c27d4eb05d1ae8dae15e871
249245
| `-- upstream
250246
| `-- real_repo.git
251247
| |-- HEAD
@@ -255,6 +251,6 @@
255251
|-- namespaces
256252
`-- tags
257253

258-
19 directories, 9 files
254+
16 directories, 8 files
259255

260256
$ cat ${TESTTMP}/josh-proxy.out

tests/proxy/workspace_create.t

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -461,12 +461,6 @@ Note that ws/d/ is now present in the ws
461461
| | | `-- HEAD
462462
| | `-- %3Aworkspace=ws
463463
| | `-- HEAD
464-
| |-- rewrites
465-
| | `-- real_repo.git
466-
| | `-- 7bd92d97e96693ea7fd7eb5757b3580002889948
467-
| | |-- r_003a2970e4c23b64f915025e9adc2e6ed04bc63a
468-
| | |-- r_2a6aa2a100b34d0d56e4b5f19e9bfdc2cd6f7d54
469-
| | `-- r_60bd0e180735e169b5c853545d8b1272ed0fc319
470464
| `-- upstream
471465
| `-- real_repo.git
472466
| |-- HEAD
@@ -476,6 +470,6 @@ Note that ws/d/ is now present in the ws
476470
|-- namespaces
477471
`-- tags
478472

479-
20 directories, 12 files
473+
17 directories, 9 files
480474

481475
$ cat ${TESTTMP}/josh-proxy.out

tests/proxy/workspace_edit_commit.t

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -200,11 +200,6 @@
200200
| | | `-- HEAD
201201
| | `-- %3Aworkspace=ws
202202
| | `-- HEAD
203-
| |-- rewrites
204-
| | `-- real_repo.git
205-
| | `-- 7bd92d97e96693ea7fd7eb5757b3580002889948
206-
| | |-- r_9a28fa82a736714d831348bbf62b951be65331b7
207-
| | `-- r_9bd58f891b4f17736c1b51903837de717fce13a5
208203
| `-- upstream
209204
| `-- real_repo.git
210205
| |-- HEAD
@@ -217,4 +212,4 @@
217212
|-- namespaces
218213
`-- tags
219214

220-
22 directories, 12 files
215+
19 directories, 10 files

tests/proxy/workspace_in_workspace.t

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -266,12 +266,6 @@
266266
| | | `-- HEAD
267267
| | `-- %3Aworkspace=ws2
268268
| | `-- HEAD
269-
| |-- rewrites
270-
| | `-- real_repo.git
271-
| | |-- 191ead67feb541c237317e25b2c66c5d8f3e33fa
272-
| | | `-- r_b3be5ad252e0f493a404a8785653065d7e677f21
273-
| | `-- 7bd92d97e96693ea7fd7eb5757b3580002889948
274-
| | `-- r_2cbcd105ead63a4fecf486b949db7f44710300e5
275269
| `-- upstream
276270
| `-- real_repo.git
277271
| |-- HEAD
@@ -281,5 +275,5 @@
281275
|-- namespaces
282276
`-- tags
283277

284-
22 directories, 12 files
278+
18 directories, 10 files
285279

tests/proxy/workspace_invalid_trailing_slash.t

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -199,10 +199,6 @@ Flushed credential cache
199199
| | | `-- HEAD
200200
| | `-- %3Aworkspace=ws
201201
| | `-- HEAD
202-
| |-- rewrites
203-
| | `-- real_repo.git
204-
| | `-- 7bd92d97e96693ea7fd7eb5757b3580002889948
205-
| | `-- r_c255706f564f629eed1756b789d761048cfe060a
206202
| `-- upstream
207203
| `-- real_repo.git
208204
| |-- HEAD
@@ -212,4 +208,4 @@ Flushed credential cache
212208
|-- namespaces
213209
`-- tags
214210

215-
18 directories, 8 files
211+
15 directories, 7 files

tests/proxy/workspace_modify.t

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -458,12 +458,6 @@ Note that ws/d/ is now present in the ws
458458
| | | `-- HEAD
459459
| | `-- %3Aworkspace=ws
460460
| | `-- HEAD
461-
| |-- rewrites
462-
| | `-- real_repo.git
463-
| | `-- 7bd92d97e96693ea7fd7eb5757b3580002889948
464-
| | |-- r_3136fff7280627623bf4d71191d1aea783579be0
465-
| | |-- r_4a199f3a19a292e6639dede0f8602afc19a82dfc
466-
| | `-- r_91e1e8645d3439b195f3866664092ebc20e63bb5
467461
| `-- upstream
468462
| `-- real_repo.git
469463
| |-- HEAD
@@ -473,6 +467,6 @@ Note that ws/d/ is now present in the ws
473467
|-- namespaces
474468
`-- tags
475469

476-
19 directories, 11 files
470+
16 directories, 8 files
477471

478472
$ cat ${TESTTMP}/josh-proxy.out

tests/proxy/workspace_modify_chain_prefix_subtree.t

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -321,11 +321,6 @@ Note that ws/d/ is now present in the ws
321321
| | | `-- HEAD
322322
| | `-- %3Aworkspace=ws
323323
| | `-- HEAD
324-
| |-- rewrites
325-
| | `-- real_repo.git
326-
| | `-- 7bd92d97e96693ea7fd7eb5757b3580002889948
327-
| | |-- r_44edc62d506b9805a3edfc74db15b1cc0bfc6871
328-
| | `-- r_707a20731ff94c2dee063a8b274665b1cc730e26
329324
| `-- upstream
330325
| `-- real_repo.git
331326
| |-- HEAD
@@ -335,6 +330,6 @@ Note that ws/d/ is now present in the ws
335330
|-- namespaces
336331
`-- tags
337332

338-
19 directories, 10 files
333+
16 directories, 8 files
339334

340335
$ cat ${TESTTMP}/josh-proxy.out | grep VIEW

tests/proxy/workspace_publish.t

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -134,10 +134,6 @@
134134
| | | `-- HEAD
135135
| | `-- %3Aworkspace=ws
136136
| | `-- HEAD
137-
| |-- rewrites
138-
| | `-- real_repo.git
139-
| | `-- 7bd92d97e96693ea7fd7eb5757b3580002889948
140-
| | `-- r_9db51080a4d148b32bd4c4e0b39eae8d0b3df763
141137
| `-- upstream
142138
| `-- real_repo.git
143139
| |-- HEAD
@@ -147,6 +143,6 @@
147143
|-- namespaces
148144
`-- tags
149145

150-
16 directories, 6 files
146+
13 directories, 5 files
151147

152148
$ cat ${TESTTMP}/josh-proxy.out | grep VIEW

0 commit comments

Comments
 (0)