0ba08c05
|
25
|
die(_("Remote with no URL"));
|
54248706
|
61
|
warning(_("promisor remote name cannot begin with '/': %s"),
|
54248706
|
63
|
return NULL;
|
7bdf0926
|
93
|
previous->next = r->next;
|
7b6e1b04
|
108
|
return git_config_string(&core_partial_clone_filter_default,
|
b21a55f3
|
139
|
return 0;
|
dcc8b4e9
|
202
|
static int remove_fetched_oids(struct object_id **oids, int oid_nr, int to_free)
|
dcc8b4e9
|
204
|
int i, missing_nr = 0;
|
dcc8b4e9
|
205
|
int *missing = xcalloc(oid_nr, sizeof(*missing));
|
dcc8b4e9
|
206
|
struct object_id *old_oids = *oids;
|
dcc8b4e9
|
208
|
int old_fetch_if_missing = fetch_if_missing;
|
dcc8b4e9
|
210
|
fetch_if_missing = 0;
|
dcc8b4e9
|
212
|
for (i = 0; i < oid_nr; i++)
|
dcc8b4e9
|
213
|
if (oid_object_info_extended(the_repository, &old_oids[i], NULL, 0)) {
|
dcc8b4e9
|
214
|
missing[i] = 1;
|
dcc8b4e9
|
215
|
missing_nr++;
|
dcc8b4e9
|
218
|
fetch_if_missing = old_fetch_if_missing;
|
dcc8b4e9
|
220
|
if (missing_nr) {
|
dcc8b4e9
|
221
|
int j = 0;
|
dcc8b4e9
|
222
|
new_oids = xcalloc(missing_nr, sizeof(*new_oids));
|
dcc8b4e9
|
223
|
for (i = 0; i < oid_nr; i++)
|
dcc8b4e9
|
224
|
if (missing[i])
|
dcc8b4e9
|
225
|
oidcpy(&new_oids[j++], &old_oids[i]);
|
dcc8b4e9
|
226
|
*oids = new_oids;
|
dcc8b4e9
|
227
|
if (to_free)
|
dcc8b4e9
|
228
|
free(old_oids);
|
dcc8b4e9
|
231
|
free(missing);
|
dcc8b4e9
|
233
|
return missing_nr;
|
dcc8b4e9
|
248
|
if (missing_nr == 1)
|
dcc8b4e9
|
249
|
continue;
|
dcc8b4e9
|
250
|
missing_nr = remove_fetched_oids(&missing_oids, missing_nr, to_free);
|
dcc8b4e9
|
251
|
if (missing_nr) {
|
dcc8b4e9
|
252
|
to_free = 1;
|
dcc8b4e9
|
253
|
continue;
|
dcc8b4e9
|
261
|
free(missing_oids);
|
Barret Rhoden
|
d0738d94
|
blame: add config options to handle output for ignored lines
|
Barret Rhoden
|
a5c91678
|
blame: add the ability to ignore commits and their changes
|
Barret Rhoden
|
3486d8d4
|
Move init_skiplist() outside of fsck
|
Barret Rhoden
|
dfb4ee12
|
blame: use a fingerprint heuristic to match ignored lines
|
Christian Couder
|
e265069a
|
Use promisor_remote_get_direct() and has_promisor_remote()
|
Christian Couder
|
dcc8b4e9
|
promisor-remote: implement promisor_remote_get_direct()
|
Christian Couder
|
b21a55f3
|
promisor-remote: parse remote.*.partialclonefilter
|
Christian Couder
|
7bdf0926
|
promisor-remote: use repository_format_partial_clone
|
Christian Couder
|
54248706
|
Add initial support for many promisor remotes
|
Christian Couder
|
7b6e1b04
|
Move core_partial_clone_filter_default to promisor-remote.c
|
Christian Couder
|
0ba08c05
|
Remove fetch-object.{c,h} in favor of promisor-remote.{c,h}
|
Derrick Stolee
|
0be0712d
|
commit-graph: create new version parameter
|
Derrick Stolee
|
5ff7cad9
|
commit-graph: return with errors during write
|
Elijah Newren
|
23495a3d
|
fast-import: support 'encoding' commit header
|
Elijah Newren
|
1c493913
|
fast-export: avoid stripping encoding header if we cannot reencode
|
Elijah Newren
|
67bfce6c
|
fast-export: do automatic reencoding of commit messages only if requested
|
Johannes Schindelin
|
dc76852d
|
fsmonitor: demonstrate that it is not refreshed after discard_index()
|
Jonathan Tan
|
a8d662e3
|
upload-pack: refactor reading of pack-objects out
|
Jonathan Tan
|
820a5361
|
upload-pack: send part of packfile response as uri
|
Jonathan Tan
|
bf01639c
|
fetch-pack: support more than one pack lockfile
|
Jonathan Tan
|
472fbef8
|
http-fetch: support fetching packfiles by URL
|
Josh Steadmon
|
6da1f1a9
|
protocol: advertise multiple supported versions
|
Junio C Hamano
|
9f7a3592
|
Merge branch 'jt/fetch-cdn-offload' into pu
|
Martin Koegler
|
5efde212
|
zlib.c: use size_t for size
|
Nguyễn Thái Ngọc Duy
|
a87e56a4
|
merge: add --quit
|
Nickolai Belakovski
|
2582083f
|
ref-filter: add worktreepath atom
|
a5e5f399
|
415
|
die(_("'%s' cannot be used with updating paths"),
|
a5e5f399
|
425
|
die(_("'%s' cannot be used with %s"),
|
183fb44f
|
433
|
die(_("neither '%s' or '%s' is specified"),
|
183fb44f
|
437
|
die(_("'%s' must be used when '%s' is not specified"),
|
e3ddd3b5
|
442
|
die(_("'%s' or '%s' cannot be used with %s"),
|
e3ddd3b5
|
447
|
die(_("'%s' or '%s' cannot be used with %s"),
|
183fb44f
|
456
|
patch_mode = "--patch=reset";
|
2f0896ec
|
460
|
BUG("either flag must have been set, worktree=%d, index=%d",
|
183fb44f
|
536
|
die(_("unable to write new index file"));
|
1806c29f
|
656
|
BUG("'switch --orphan' should never accept a commit as starting point");
|
1806c29f
|
1039
|
BUG("'switch --orphan' should never accept a commit as starting point");
|
5c06e269
|
1176
|
die(_("only one reference expected"));
|
7968bef0
|
1300
|
const char *ref = to_free;
|
7968bef0
|
1302
|
if (skip_prefix(ref, "refs/tags/", &ref))
|
7968bef0
|
1303
|
die(_("a branch is expected, got tag '%s'"), ref);
|
7968bef0
|
1304
|
if (skip_prefix(ref, "refs/remotes/", &ref))
|
7968bef0
|
1305
|
die(_("a branch is expected, got remote branch '%s'"), ref);
|
7968bef0
|
1306
|
die(_("a branch is expected, got '%s'"), ref);
|
7968bef0
|
1314
|
die(_("a branch is expected, got '%s'"), branch_info->name);
|
c45f0f52
|
1329
|
die(_("cannot switch branch in the middle of an am session\n"
|
c45f0f52
|
1333
|
die(_("cannot switch branch while rebasing\n"
|
c45f0f52
|
1337
|
die(_("cannot switch branch while cherry-picking\n"
|
c45f0f52
|
1341
|
die(_("cannot switch branch while reverting\n"
|
c45f0f52
|
1345
|
die(_("cannot switch branch while bisecting\n"
|
3ec37ad1
|
1372
|
die(_("'%s' cannot be used with '%s'"), "--discard-changes", "--merge");
|
c9c935f6
|
1510
|
BUG("make up your mind, you need to take _something_");
|
183fb44f
|
1542
|
opts->checkout_index = 0;
|
183fb44f
|
1552
|
BUG("these flags should be non-negative by now");
|
c9c935f6
|
1613
|
die(_("could not resolve %s"), opts->from_treeish);
|
Denton Liu
|
526c03b5
|
rebase: refactor can_fast_forward into goto tower
|
Denton Liu
|
10572de1
|
rebase: fast-forward --onto in more cases
|
Denton Liu
|
f39a9c65
|
remote: add --save-to-push option to git remote set-url
|
Derrick Stolee
|
91336887
|
repack: refactor pack deletion for future use
|
Derrick Stolee
|
5bf52fbc
|
midx: refactor permutation logic and pack sorting
|
Derrick Stolee
|
3c9e7185
|
multi-pack-index: implement 'expire' subcommand
|
Derrick Stolee
|
ab08c40a
|
multi-pack-index: prepare 'repack' subcommand
|
Derrick Stolee
|
3dfbc2f0
|
midx: implement midx_repack()
|
Elijah Newren
|
8e712ef6
|
Honor core.precomposeUnicode in more places
|
Jonathan Nieder
|
ee70c128
|
index: offer advice for unknown index extensions
|
Mike Hommey
|
5c3d5a38
|
Make fread/fwrite-like functions in http.c more like fread/fwrite.
|
Nguyễn Thái Ngọc Duy
|
5c387428
|
parse-options: don't emit "ambiguous option" for aliases
|
Nguyễn Thái Ngọc Duy
|
3ec37ad1
|
switch: add --discard-changes
|
Nguyễn Thái Ngọc Duy
|
722abec7
|
worktree add: sanitize worktree names
|
Nguyễn Thái Ngọc Duy
|
b0c2d613
|
Introduce "precious" file concept
|
Nguyễn Thái Ngọc Duy
|
a5e5f399
|
restore: replace --force with --ignore-unmerged
|
Nguyễn Thái Ngọc Duy
|
183fb44f
|
restore: add --worktree and --staged
|
Nguyễn Thái Ngọc Duy
|
e3ddd3b5
|
restore: reject invalid combinations with --staged
|
Nguyễn Thái Ngọc Duy
|
2f0896ec
|
restore: support --patch
|
Nguyễn Thái Ngọc Duy
|
1806c29f
|
switch: make --orphan switch to an empty tree
|
Nguyễn Thái Ngọc Duy
|
5c06e269
|
switch: stop accepting pathspec
|
Nguyễn Thái Ngọc Duy
|
7968bef0
|
switch: only allow explicit detached HEAD
|
Nguyễn Thái Ngọc Duy
|
c45f0f52
|
switch: reject if some operation is in progress
|
Nguyễn Thái Ngọc Duy
|
c9c935f6
|
restore: take tree-ish from --source option instead
|
0609b741
|
146
|
static int add_exec_commands(struct string_list *commands)
|
0609b741
|
148
|
const char *todo_file = rebase_path_todo();
|
0609b741
|
149
|
struct todo_list todo_list = TODO_LIST_INIT;
|
0609b741
|
152
|
if (strbuf_read_file(&todo_list.buf, todo_file, 0) < 0)
|
0609b741
|
153
|
return error_errno(_("could not read '%s'."), todo_file);
|
0609b741
|
155
|
if (todo_list_parse_insn_buffer(the_repository, todo_list.buf.buf,
|
0609b741
|
157
|
todo_list_release(&todo_list);
|
0609b741
|
158
|
return error(_("unusable todo list: '%s'"), todo_file);
|
0609b741
|
161
|
todo_list_add_exec_commands(&todo_list, commands);
|
0609b741
|
162
|
res = todo_list_write_to_file(the_repository, &todo_list,
|
0609b741
|
164
|
todo_list_release(&todo_list);
|
0609b741
|
166
|
if (res)
|
0609b741
|
167
|
return error_errno(_("could not write '%s'."), todo_file);
|
0609b741
|
168
|
return 0;
|
0609b741
|
171
|
static int rearrange_squash_in_todo_file(void)
|
0609b741
|
173
|
const char *todo_file = rebase_path_todo();
|
0609b741
|
174
|
struct todo_list todo_list = TODO_LIST_INIT;
|
0609b741
|
175
|
int res = 0;
|
0609b741
|
177
|
if (strbuf_read_file(&todo_list.buf, todo_file, 0) < 0)
|
0609b741
|
178
|
return error_errno(_("could not read '%s'."), todo_file);
|
0609b741
|
179
|
if (todo_list_parse_insn_buffer(the_repository, todo_list.buf.buf,
|
0609b741
|
181
|
todo_list_release(&todo_list);
|
0609b741
|
182
|
return error(_("unusable todo list: '%s'"), todo_file);
|
0609b741
|
185
|
res = todo_list_rearrange_squash(&todo_list);
|
0609b741
|
186
|
if (!res)
|
0609b741
|
187
|
res = todo_list_write_to_file(the_repository, &todo_list,
|
0609b741
|
190
|
todo_list_release(&todo_list);
|
0609b741
|
192
|
if (res)
|
0609b741
|
193
|
return error_errno(_("could not write '%s'."), todo_file);
|
0609b741
|
194
|
return 0;
|
0609b741
|
204
|
return error_errno(_("could not read '%s'."), todo_file);
|
0609b741
|
208
|
todo_list_release(&todo_list);
|
0609b741
|
209
|
return error(_("unusable todo list: '%s'"), todo_file);
|
0609b741
|
217
|
return error_errno(_("could not write '%s'."), todo_file);
|
0609b741
|
229
|
return error_errno(_("could not read '%s'."), todo_file);
|
0609b741
|
235
|
res = error_errno(_("could not write '%s'"), todo_file);
|
0609b741
|
252
|
return error(_("no HEAD?"));
|
c44c2462
|
279
|
return error_errno(_("could not create temporary %s"), merge_dir());
|
0609b741
|
285
|
return error_errno(_("could not mark as interactive"));
|
0609b741
|
314
|
return -1;
|
0609b741
|
318
|
return -1;
|
0609b741
|
323
|
free(revisions);
|
0609b741
|
324
|
free(shortrevisions);
|
0609b741
|
326
|
return -1;
|
7d3488eb
|
335
|
argv_array_push(&make_script_args,
|
0ea0847e
|
336
|
oid_to_hex(&opts->restrict_revision->object.oid));
|
0609b741
|
343
|
error(_("could not generate todo list"));
|
0609b741
|
348
|
BUG("unusable todo list");
|
460bc3ce
|
382
|
die(_("a base commit must be provided with --upstream or --onto"));
|
460bc3ce
|
419
|
ret = rearrange_squash_in_todo_file();
|
460bc3ce
|
420
|
break;
|
460bc3ce
|
422
|
struct string_list commands = STRING_LIST_INIT_DUP;
|
460bc3ce
|
424
|
split_exec_commands(opts->cmd, &commands);
|
460bc3ce
|
425
|
ret = add_exec_commands(&commands);
|
460bc3ce
|
426
|
string_list_clear(&commands, 0);
|
460bc3ce
|
427
|
break;
|
460bc3ce
|
430
|
BUG("invalid command '%d'", command);
|
0609b741
|
509
|
usage_with_options(builtin_rebase_interactive_usage, options);
|
73fdc535
|
515
|
opts.squash_onto = &squash_onto;
|
0609b741
|
518
|
warning(_("--[no-]rebase-cousins has no effect without "
|
Jeff Hostetler
|
a0897249
|
trace2: refactor setting process starting time
|
Jeff Hostetler
|
bce9db6d
|
trace2: use system/global config for default trace2 settings
|
Jeff Hostetler
|
08881b9a
|
trace2: make SIDs more unique
|
Josh Steadmon
|
22a73383
|
trace2: fix incorrect function pointer check
|
Junio C Hamano
|
a5c08f12
|
Merge branch 'jh/trace2-sid-fix' into next
|
Phillip Wood
|
0609b741
|
rebase -i: combine rebase--interactive.c with rebase.c
|
Phillip Wood
|
c44c2462
|
rebase -i: remove duplication
|
Phillip Wood
|
7d3488eb
|
rebase -i: use struct commit when parsing options
|
Phillip Wood
|
0ea0847e
|
rebase -i: use struct rebase_options in do_interactive_rebase()
|
Phillip Wood
|
460bc3ce
|
rebase -i: run without forking rebase--interactive
|
Phillip Wood
|
73fdc535
|
rebase -i: use struct rebase_options to parse args
|
Phillip Wood
|
33898531
|
rebase -i: use struct object_id for squash_onto
|
Phillip Wood
|
4a72486d
|
fix cherry-pick/revert status after commit
|
Phillip Wood
|
b07d9bfd
|
commit/reset: try to clean up sequencer state
|
259ccb6c
|
322
|
strbuf_addstr(&opt->obuf, _("(bad commit)\n"));
|
259ccb6c
|
345
|
return err(opt, _("add_cacheinfo failed for path '%s'; merge aborting."), path);
|
259ccb6c
|
354
|
return err(opt, _("add_cacheinfo failed to refresh for path '%s'; merge aborting."), path);
|
259ccb6c
|
437
|
err(opt, _("error building trees"));
|
259ccb6c
|
692
|
ce = index_file_exists(opt->repo->index, path, strlen(path),
|
259ccb6c
|
886
|
return err(opt, msg, path, _(": perhaps a D/F conflict?"));
|
259ccb6c
|
887
|
return err(opt, msg, path, "");
|
8daec1df
|
936
|
return err(opt, _("cannot read object %s '%s'"),
|
8daec1df
|
939
|
ret = err(opt, _("blob expected for %s '%s'"),
|
259ccb6c
|
963
|
ret = err(opt, _("failed to open '%s': %s"),
|
259ccb6c
|
974
|
ret = err(opt, _("failed to symlink '%s': %s"),
|
259ccb6c
|
978
|
ret = err(opt,
|
8daec1df
|
980
|
contents->mode, oid_to_hex(&contents->oid), path);
|
259ccb6c
|
1182
|
output(opt, 1, _("Failed to merge submodule %s (commits not present)"), path);
|
259ccb6c
|
1199
|
} else if (show(opt, 2))
|
259ccb6c
|
1200
|
output(opt, 2, _("Fast-forwarding submodule %s"), path);
|
259ccb6c
|
1208
|
if (show(opt, 3)) {
|
259ccb6c
|
1209
|
output(opt, 3, _("Fast-forwarding submodule %s to the following commit:"), path);
|
259ccb6c
|
1210
|
output_commit_title(opt, commit_a);
|
259ccb6c
|
1211
|
} else if (show(opt, 2))
|
259ccb6c
|
1212
|
output(opt, 2, _("Fast-forwarding submodule %s"), path);
|
e3de888c
|
1277
|
return merge_mode_and_contents(opt, o, b, a,
|
259ccb6c
|
1325
|
ret = err(opt, _("Failed to execute internal merge"));
|
259ccb6c
|
1330
|
ret = err(opt, _("Unable to add %s to database"),
|
79c47598
|
1397
|
return -1;
|
8c8e5bd6
|
1408
|
return -1;
|
8daec1df
|
1746
|
if (update_file(opt, 0, add, a->path))
|
8daec1df
|
1753
|
if (update_file(opt, 0, add, b->path))
|
259ccb6c
|
2929
|
return err(opt, _("cannot read object %s"), oid_to_hex(oid));
|
259ccb6c
|
2932
|
return err(opt, _("object %s is not a blob"), oid_to_hex(oid));
|
259ccb6c
|
3068
|
remove_file_from_index(opt->repo->index, path);
|
8c8e5bd6
|
3122
|
return -1;
|
8c8e5bd6
|
3184
|
BUG("Impossible dir_rename_original_type/clean combination");
|
8daec1df
|
3362
|
} else if (!o_valid && !a_valid && !b_valid) {
|
8daec1df
|
3367
|
remove_file(opt, 1, path, !a->mode);
|
259ccb6c
|
3462
|
unpack_trees_finish(opt);
|
259ccb6c
|
3556
|
return err(opt, _("merge returned no commit"));
|
259ccb6c
|
3622
|
return err(opt, _("Could not parse object '%s'"),
|
259ccb6c
|
3638
|
return err(opt, _("Unable to write index."));
|
8c8e5bd6
|
3661
|
} else if (!strcasecmp(value, "conflict")) {
|
8c8e5bd6
|
3662
|
opt->detect_directory_renames = 1;
|
259ccb6c
|
3704
|
opt->subtree_shift = "";
|
259ccb6c
|
3708
|
opt->xdl_opts = DIFF_WITH_ALG(opt, PATIENCE_DIFF);
|
259ccb6c
|
3710
|
opt->xdl_opts = DIFF_WITH_ALG(opt, HISTOGRAM_DIFF);
|
259ccb6c
|
3716
|
DIFF_XDL_CLR(opt, NEED_MINIMAL);
|
259ccb6c
|
3717
|
opt->xdl_opts &= ~XDF_DIFF_ALGORITHM_MASK;
|
259ccb6c
|
3718
|
opt->xdl_opts |= value;
|
259ccb6c
|
3727
|
DIFF_XDL_SET(opt, IGNORE_CR_AT_EOL);
|
259ccb6c
|
3729
|
opt->renormalize = 1;
|
259ccb6c
|
3731
|
opt->renormalize = 0;
|
Christian Couder
|
f8e44a81
|
replace: peel tag when passing a tag as parent to --graft
|
Christian Couder
|
ee521ec4
|
replace: peel tag when passing a tag first to --graft
|
Damien Robert
|
c646d093
|
ref-filter: use correct branch for %(push:track)
|
Denton Liu
|
d540b70c
|
merge: cleanup messages like commit
|
Denton Liu
|
01dc801a
|
tag: fix formatting
|
Elijah Newren
|
8c8e5bd6
|
merge-recursive: switch directory rename detection default
|
Elijah Newren
|
e3de888c
|
merge-recursive: rename diff_filespec 'one' to 'o'
|
Elijah Newren
|
79c47598
|
merge-recursive: avoid clobbering untracked files with directory renames
|
Elijah Newren
|
259ccb6c
|
merge-recursive: rename merge_options argument from 'o' to 'opt'
|
Elijah Newren
|
8daec1df
|
merge-recursive: switch from (oid,mode) pairs to a diff_filespec
|
Johannes Schindelin
|
6ea18fff
|
test-tool: handle the `-C ` option just like `git`
|
Josh Steadmon
|
a4d3a283
|
trace2: write to directory targets
|
Nguyễn Thái Ngọc Duy
|
0488481e
|
sha1-name.c: remove the_repo from diagnose_invalid_index_path()
|
Nguyễn Thái Ngọc Duy
|
56700903
|
refs.c: add repo_dwim_log()
|
Nguyễn Thái Ngọc Duy
|
7fdff474
|
refs.c: remove the_repo from read_ref_at()
|
Nguyễn Thái Ngọc Duy
|
c931ba4e
|
sha1-name.c: remove the_repo from handle_one_ref()
|
Nguyễn Thái Ngọc Duy
|
0daf7ff6
|
sha1-name.c: remove the_repo from get_oid_mb()
|
Phillip Wood
|
d74f3e58
|
sequencer: fix cleanup with --signoff and -x
|
Phillip Wood
|
dc42e9a8
|
sequencer.c: save and restore cleanup mode
|