8f7c7f55
|
2155
|
int repo_config_set_gently(struct repository *r,
|
8f7c7f55
|
2158
|
char *path = repo_git_path(r, "config");
|
8f7c7f55
|
2159
|
int ret = git_config_set_multivar_in_file_gently(path, key, value, NULL, 0);
|
8f7c7f55
|
2160
|
free(path);
|
8f7c7f55
|
2161
|
return ret;
|
8f7c7f55
|
2164
|
void repo_config_set(struct repository *r, const char *key, const char *value)
|
8f7c7f55
|
2166
|
if (!repo_config_set_gently(r, key, value))
|
8f7c7f55
|
2167
|
return;
|
8f7c7f55
|
2168
|
if (value)
|
8f7c7f55
|
2169
|
die(_("could not set '%s' to '%s'"), key, value);
|
8f7c7f55
|
2171
|
die(_("could not unset '%s'"), key);
|
8f7c7f55
|
2174
|
int repo_config_set_worktree_gently(struct repository *r,
|
8f7c7f55
|
2180
|
path = get_worktree_config(r);
|
8f7c7f55
|
2181
|
if (!path)
|
8f7c7f55
|
2182
|
return CONFIG_INVALID_FILE;
|
8f7c7f55
|
2183
|
ret = git_config_set_multivar_in_file_gently(path, key, value, NULL, 0);
|
8f7c7f55
|
2184
|
free(path);
|
8f7c7f55
|
2185
|
return ret;
|
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
|
dfb4ee12
|
blame: use a fingerprint heuristic to match ignored lines
|
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
|
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
|
7b6e1b04
|
Move core_partial_clone_filter_default to promisor-remote.c
|
Christian Couder
|
7bdf0926
|
promisor-remote: use repository_format_partial_clone
|
Christian Couder
|
54248706
|
Add initial support for many promisor remotes
|
Christian Couder
|
0ba08c05
|
Remove fetch-object.{c,h} in favor of promisor-remote.{c,h}
|
Dan McGregor
|
ba81921a
|
http: cast result to FILE *
|
Derrick Stolee
|
d5747681
|
commit-graph: create new version flags
|
Derrick Stolee
|
5ff7cad9
|
commit-graph: return with errors during write
|
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
|
07ca07bb
|
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
|
8f7c7f55
|
config.c: add repo_config_set_worktree_gently()
|
Nguyễn Thái Ngọc Duy
|
6f11fd5e
|
config: add --move-to
|
Nguyễn Thái Ngọc Duy
|
a12c1ff3
|
config: factor out set_config_source_file()
|
Nickolai Belakovski
|
3da20422
|
ref-filter: add worktreepath atom
|
4de2081d
|
415
|
die(_("'%s' cannot be used with updating paths"),
|
4de2081d
|
425
|
die(_("'%s' cannot be used with %s"),
|
a0f3bbfa
|
433
|
die(_("neither '%s' or '%s' is specified"),
|
a0f3bbfa
|
437
|
die(_("'%s' must be used when '%s' is not specified"),
|
7800c9e6
|
442
|
die(_("'%s' or '%s' cannot be used with %s"),
|
7800c9e6
|
447
|
die(_("'%s' or '%s' cannot be used with %s"),
|
a0f3bbfa
|
456
|
patch_mode = "--patch=reset";
|
af482cb3
|
460
|
BUG("either flag must have been set, worktree=%d, index=%d",
|
a0f3bbfa
|
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");
|
8c1bf59d
|
1510
|
BUG("make up your mind, you need to take _something_");
|
a0f3bbfa
|
1542
|
opts->checkout_index = 0;
|
a0f3bbfa
|
1552
|
BUG("these flags should be non-negative by now");
|
8c1bf59d
|
1613
|
die(_("could not resolve %s"), opts->from_treeish);
|
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 "
|
526c03b5
|
1267
|
goto done;
|
10572de1
|
1283
|
goto done;
|
Denton Liu
|
f39a9c65
|
remote: add --save-to-push option to git remote set-url
|
Denton Liu
|
10572de1
|
rebase: fast-forward --onto in more cases
|
Denton Liu
|
526c03b5
|
rebase: refactor can_fast_forward into goto tower
|
Derrick Stolee
|
91336887
|
repack: refactor pack deletion for future use
|
Derrick Stolee
|
3dfbc2f0
|
midx: implement midx_repack()
|
Derrick Stolee
|
3c9e7185
|
multi-pack-index: implement 'expire' subcommand
|
Derrick Stolee
|
5bf52fbc
|
midx: refactor permutation logic and pack sorting
|
Derrick Stolee
|
ab08c40a
|
multi-pack-index: prepare 'repack' subcommand
|
Elijah Newren
|
6ef255b6
|
Honor core.precomposeUnicode in more places
|
Jonathan Nieder
|
ee70c128
|
index: offer advice for unknown index extensions
|
Nguyễn Thái Ngọc Duy
|
b0c2d613
|
Introduce "precious" file concept
|
Nguyễn Thái Ngọc Duy
|
722abec7
|
worktree add: sanitize worktree names
|
Nguyễn Thái Ngọc Duy
|
b6d7dfc5
|
rm: add --staged as alias for --cached
|
Nguyễn Thái Ngọc Duy
|
1806c29f
|
switch: make --orphan switch to an empty tree
|
Nguyễn Thái Ngọc Duy
|
8c1bf59d
|
restore: take tree-ish from --source option instead
|
Nguyễn Thái Ngọc Duy
|
4de2081d
|
restore: replace --force with --ignore-unmerged
|
Nguyễn Thái Ngọc Duy
|
3ec37ad1
|
switch: add --discard-changes
|
Nguyễn Thái Ngọc Duy
|
c45f0f52
|
switch: reject if some operation is in progress
|
Nguyễn Thái Ngọc Duy
|
7968bef0
|
switch: only allow explicit detached HEAD
|
Nguyễn Thái Ngọc Duy
|
5c06e269
|
switch: stop accepting pathspec
|
Nguyễn Thái Ngọc Duy
|
af482cb3
|
restore: support --patch
|
Nguyễn Thái Ngọc Duy
|
7800c9e6
|
restore: reject invalid combinations with --staged
|
Nguyễn Thái Ngọc Duy
|
a0f3bbfa
|
restore: add --worktree and --staged
|
Phillip Wood
|
b07d9bfd
|
commit/reset: try to clean up sequencer state
|
Phillip Wood
|
4a72486d
|
fix cherry-pick/revert status after commit
|
Phillip Wood
|
33898531
|
rebase -i: use struct object_id for squash_onto
|
Phillip Wood
|
c44c2462
|
rebase -i: remove duplication
|
Phillip Wood
|
73fdc535
|
rebase -i: use struct rebase_options to parse args
|
Phillip Wood
|
460bc3ce
|
rebase -i: run without forking rebase--interactive
|
Phillip Wood
|
7d3488eb
|
rebase -i: use struct commit when parsing options
|
Phillip Wood
|
0609b741
|
rebase -i: combine rebase--interactive.c with rebase.c
|
Phillip Wood
|
0ea0847e
|
rebase -i: use struct rebase_options in do_interactive_rebase()
|
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
|
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
|
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
|
8c8e5bd6
|
merge-recursive: switch directory rename detection default
|
Jeff Hostetler
|
bce9db6d
|
trace2: use system/global config for default trace2 settings
|
Jeff Hostetler
|
a0897249
|
trace2: refactor setting process starting time
|
Jeff Hostetler
|
08881b9a
|
trace2: make SIDs more unique
|
Johannes Schindelin
|
6ea18fff
|
test-tool: handle the `-C ` option just like `git`
|
Josh Steadmon
|
a4d3a283
|
trace2: write to directory targets
|
Junio C Hamano
|
a5c08f12
|
Merge branch 'jh/trace2-sid-fix' into next
|
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()
|
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
|
7fdff474
|
refs.c: remove the_repo from read_ref_at()
|
Nguyễn Thái Ngọc Duy
|
56700903
|
refs.c: add repo_dwim_log()
|
Phillip Wood
|
d74f3e58
|
sequencer: fix cleanup with --signoff and -x
|
Phillip Wood
|
dc42e9a8
|
sequencer.c: save and restore cleanup mode
|
1ba204de
|
17
|
static int add_exec_commands(struct string_list *commands)
|
1ba204de
|
19
|
const char *todo_file = rebase_path_todo();
|
1ba204de
|
20
|
struct todo_list todo_list = TODO_LIST_INIT;
|
1ba204de
|
23
|
if (strbuf_read_file(&todo_list.buf, todo_file, 0) < 0)
|
1ba204de
|
24
|
return error_errno(_("could not read '%s'."), todo_file);
|
1ba204de
|
26
|
if (todo_list_parse_insn_buffer(the_repository, todo_list.buf.buf,
|
1ba204de
|
28
|
todo_list_release(&todo_list);
|
1ba204de
|
29
|
return error(_("unusable todo list: '%s'"), todo_file);
|
1ba204de
|
32
|
todo_list_add_exec_commands(&todo_list, commands);
|
1ba204de
|
33
|
res = todo_list_write_to_file(the_repository, &todo_list,
|
1ba204de
|
35
|
todo_list_release(&todo_list);
|
1ba204de
|
37
|
if (res)
|
1ba204de
|
38
|
return error_errno(_("could not write '%s'."), todo_file);
|
1ba204de
|
39
|
return 0;
|
79d7e883
|
42
|
static int rearrange_squash_in_todo_file(void)
|
79d7e883
|
44
|
const char *todo_file = rebase_path_todo();
|
79d7e883
|
45
|
struct todo_list todo_list = TODO_LIST_INIT;
|
79d7e883
|
46
|
int res = 0;
|
79d7e883
|
48
|
if (strbuf_read_file(&todo_list.buf, todo_file, 0) < 0)
|
79d7e883
|
49
|
return error_errno(_("could not read '%s'."), todo_file);
|
79d7e883
|
50
|
if (todo_list_parse_insn_buffer(the_repository, todo_list.buf.buf,
|
79d7e883
|
52
|
todo_list_release(&todo_list);
|
79d7e883
|
53
|
return error(_("unusable todo list: '%s'"), todo_file);
|
79d7e883
|
56
|
res = todo_list_rearrange_squash(&todo_list);
|
79d7e883
|
57
|
if (!res)
|
79d7e883
|
58
|
res = todo_list_write_to_file(the_repository, &todo_list,
|
79d7e883
|
61
|
todo_list_release(&todo_list);
|
79d7e883
|
63
|
if (res)
|
79d7e883
|
64
|
return error_errno(_("could not write '%s'."), todo_file);
|
79d7e883
|
65
|
return 0;
|
ed35d188
|
75
|
return error_errno(_("could not read '%s'."), todo_file);
|
ed35d188
|
79
|
todo_list_release(&todo_list);
|
ed35d188
|
80
|
return error(_("unusable todo list: '%s'"), todo_file);
|
ed35d188
|
88
|
return error_errno(_("could not write '%s'."), todo_file);
|
a930eb03
|
100
|
return error_errno(_("could not read '%s'."), todo_file);
|
a930eb03
|
106
|
res = error_errno(_("could not write '%s'"), todo_file);
|
94bcad79
|
208
|
BUG("unusable todo list");
|
79d7e883
|
366
|
ret = rearrange_squash_in_todo_file();
|
1ba204de
|
369
|
ret = add_exec_commands(&commands);
|
Ævar Arnfjörð Bjarmason
|
61df89c8
|
commit-graph: don't early exit(1) on e.g. "git status"
|
Ævar Arnfjörð Bjarmason
|
43d35618
|
commit-graph write: don't die if the existing graph is corrupt
|
Ævar Arnfjörð Bjarmason
|
bf3d70fe
|
gc: handle & check gc.reflogExpire config
|
Ævar Arnfjörð Bjarmason
|
93b4405f
|
commit-graph: improve & i18n error messages
|
Alban Gruin
|
6bfeb7f1
|
sequencer: refactor skip_unnecessary_picks() to work on a todo_list
|
Alban Gruin
|
616d7740
|
sequencer: introduce todo_list_write_to_file()
|
Alban Gruin
|
94bcad79
|
sequencer: change complete_action() to use the refactored functions
|
Alban Gruin
|
a930eb03
|
rebase-interactive: rewrite edit_todo_list() to handle the initial edit
|
Alban Gruin
|
6ca89c6f
|
sequencer: refactor check_todo_list() to work on a todo_list
|
Alban Gruin
|
ed35d188
|
rebase--interactive: move transform_todo_file()
|
Alban Gruin
|
1ba204de
|
rebase--interactive: move sequencer_add_exec_commands()
|
Alban Gruin
|
79d7e883
|
rebase--interactive: move rearrange_squash_in_todo_file()
|
brian m. carlson
|
05dfc7ca
|
http: replace sha1_to_hex
|
brian m. carlson
|
eed0e60f
|
http: compute hash of downloaded objects using the_hash_algo
|
brian m. carlson
|
95399788
|
hash: add a function to lookup hash algorithm by length
|
brian m. carlson
|
0dd49248
|
pack-bitmap: replace sha1_to_hex
|
brian m. carlson
|
2bf1db78
|
http-walker: replace sha1_to_hex
|
brian m. carlson
|
ebe4df59
|
builtin/difftool: use parse_oid_hex
|
brian m. carlson
|
ef479a12
|
fast-import: replace sha1_to_hex
|
brian m. carlson
|
9c9492e8
|
remote-curl: make hash size independent
|
brian m. carlson
|
28d055bd
|
fast-import: make hash-size independent
|
Elijah Newren
|
cf7b857a
|
fast-import: fix erroneous handling of get-mark with empty orphan commits
|
Elijah Newren
|
5056bb76
|
fast-import: check most prominent commands first
|
Elijah Newren
|
7ffde293
|
fast-import: only allow cat-blob requests where it makes sense
|
Jeff King
|
8320b1db
|
revision: use a prio_queue to hold rewritten parents
|
Jeff King
|
5205749d
|
parse-options: drop unused ctx parameter from show_gitcomp()
|
Jeff King
|
4828ce98
|
pack-revindex: open index if necessary
|
Jeff King
|
4ecbd649
|
server-info: use strbuf to read old info/packs file
|
Jeff King
|
b83a3089
|
server-info: fix blind pointer arithmetic
|
Jeff King
|
ddc56d47
|
http: simplify parsing of remote objects/info/packs
|
Jeff King
|
7954d365
|
log: drop unused rev_info from early output
|
Jeff King
|
fc789156
|
packfile: fix pack basename computation
|
Johannes Schindelin
|
20de316e
|
difftool: allow running outside Git worktrees with --no-index
|
Jonathan Tan
|
1e7d440b
|
fetch-pack: call prepare_shallow_info only if v0
|
Nguyễn Thái Ngọc Duy
|
b165fac8
|
unpack-trees: rename "gently" flag to "quiet"
|
Nguyễn Thái Ngọc Duy
|
191e9d2c
|
unpack-trees: keep gently check inside add_rejected_path
|
Nguyễn Thái Ngọc Duy
|
bb987290
|
diff.c: allow --no-color-moved-ws
|
Nguyễn Thái Ngọc Duy
|
59311a98
|
diff-parseopt: convert --[no-]color-moved
|
Nguyễn Thái Ngọc Duy
|
a75f28cb
|
diff-parseopt: convert --find-object
|
Nguyễn Thái Ngọc Duy
|
5a749d9f
|
diff-parseopt: convert --ws-error-highlight
|
Nguyễn Thái Ngọc Duy
|
d2d3f273
|
diff-parseopt: convert --diff-filter
|
Nguyễn Thái Ngọc Duy
|
16bb3d71
|
diff --no-index: use parse_options() instead of diff_opt_parse()
|
Nguyễn Thái Ngọc Duy
|
d8774183
|
diff-parseopt: convert --[no-]abbrev
|
Phillip Wood
|
f59199d5
|
sequencer: break some long lines
|
Rene Scharfe
|
3548726c
|
get-tar-commit-id: parse comment record
|
René Scharfe
|
87805600
|
sequencer: factor out strbuf_read_file_or_whine()
|
SZEDER Gábor
|
545dc345
|
progress: break too long progress bar lines
|
SZEDER Gábor
|
a544fb08
|
blame: default to HEAD in a bare repo when no start commit is given
|
Thomas Gummerer
|
7cb7283a
|
ls-files: use correct format string
|