@@ -50,6 +50,7 @@ type ConfigEntry struct {
50
50
ExcludeTopics []string
51
51
Active bool
52
52
NoArchived bool
53
+ KeepDeleted bool
53
54
GerritFetchMetaConfig bool
54
55
GerritRepoNameFormat string
55
56
ExcludeUserRepos bool
@@ -169,7 +170,7 @@ func executeMirror(cfg []ConfigEntry, repoDir string, pendingRepos chan<- string
169
170
var cmd * exec.Cmd
170
171
if c .GitHubURL != "" || c .GithubUser != "" || c .GithubOrg != "" {
171
172
cmd = exec .Command ("zoekt-mirror-github" ,
172
- "-dest" , repoDir , "-delete" )
173
+ "-dest" , repoDir )
173
174
if c .GitHubURL != "" {
174
175
cmd .Args = append (cmd .Args , "-url" , c .GitHubURL )
175
176
}
@@ -196,6 +197,9 @@ func executeMirror(cfg []ConfigEntry, repoDir string, pendingRepos chan<- string
196
197
if c .NoArchived {
197
198
cmd .Args = append (cmd .Args , "-no_archived" )
198
199
}
200
+ if ! c .KeepDeleted {
201
+ cmd .Args = append (cmd .Args , "-delete" )
202
+ }
199
203
} else if c .GitilesURL != "" {
200
204
cmd = exec .Command ("zoekt-mirror-gitiles" ,
201
205
"-dest" , repoDir , "-name" , c .Name )
@@ -213,7 +217,7 @@ func executeMirror(cfg []ConfigEntry, repoDir string, pendingRepos chan<- string
213
217
cmd .Args = append (cmd .Args , c .CGitURL )
214
218
} else if c .BitBucketServerURL != "" {
215
219
cmd = exec .Command ("zoekt-mirror-bitbucket-server" ,
216
- "-dest" , repoDir , "-url" , c .BitBucketServerURL , "-delete" )
220
+ "-dest" , repoDir , "-url" , c .BitBucketServerURL )
217
221
if c .BitBucketServerProject != "" {
218
222
cmd .Args = append (cmd .Args , "-project" , c .BitBucketServerProject )
219
223
}
@@ -232,6 +236,9 @@ func executeMirror(cfg []ConfigEntry, repoDir string, pendingRepos chan<- string
232
236
if c .CredentialPath != "" {
233
237
cmd .Args = append (cmd .Args , "-credentials" , c .CredentialPath )
234
238
}
239
+ if ! c .KeepDeleted {
240
+ cmd .Args = append (cmd .Args , "-delete" )
241
+ }
235
242
} else if c .GitLabURL != "" {
236
243
cmd = exec .Command ("zoekt-mirror-gitlab" ,
237
244
"-dest" , repoDir , "-url" , c .GitLabURL )
@@ -253,9 +260,12 @@ func executeMirror(cfg []ConfigEntry, repoDir string, pendingRepos chan<- string
253
260
if c .NoArchived {
254
261
cmd .Args = append (cmd .Args , "-no_archived" )
255
262
}
263
+ if ! c .KeepDeleted {
264
+ cmd .Args = append (cmd .Args , "-delete" )
265
+ }
256
266
} else if c .GerritApiURL != "" {
257
267
cmd = exec .Command ("zoekt-mirror-gerrit" ,
258
- "-dest" , repoDir , "-delete" )
268
+ "-dest" , repoDir )
259
269
if c .CredentialPath != "" {
260
270
cmd .Args = append (cmd .Args , "-http-credentials" , c .CredentialPath )
261
271
}
@@ -274,6 +284,9 @@ func executeMirror(cfg []ConfigEntry, repoDir string, pendingRepos chan<- string
274
284
if c .GerritRepoNameFormat != "" {
275
285
cmd .Args = append (cmd .Args , "-repo-name-format" , c .GerritRepoNameFormat )
276
286
}
287
+ if ! c .KeepDeleted {
288
+ cmd .Args = append (cmd .Args , "-delete" )
289
+ }
277
290
cmd .Args = append (cmd .Args , c .GerritApiURL )
278
291
} else {
279
292
log .Printf ("executeMirror: ignoring config, because it does not contain any valid repository definition: %v" , c )
0 commit comments