aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/rerere-train.sh
AgeCommit message (Collapse)AuthorFilesLines
2022-07-19contrib/rerere-train: avoid useless gpg sign in trainingCeleste Liu1-1/+1
Users may have configured "git merge" to always require GPG signing the resulting commits. We are not running "git merge" to re-create merge commits, but merely to replay merge conflicts, and we will immediately discard the resulting commits; there is no point in signing them. Override such configuration that forces useless signing from the command line with the "--no-gpg-sign" option. Signed-off-by: Celeste Liu <coelacanthus@outlook.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2022-02-27rerere-train: two fixes to the use of "git show -s"Junio C Hamano1-1/+1
The script uses "git show -s" to display the title of the merge commit being studied, without explicitly disabling the pager, which is not a safe thing to do in a script. For example, when the pager is set to "less" with "-SF" options (-S tells the pager not to fold lines but allow horizontal scrolling to show the overly long lines, -F tells the pager not to wait if the output in its entirety is shown on a single page), and the title of the merge commit is longer than the width of the terminal, the pager will wait until the end-user tells it to quit after showing the single line. Explicitly disable the pager with this "git show" invocation to fix this. The command uses the "--pretty=format:..." format, which adds LF in between each pair of commits it outputs, which means that the label for the merge being learned from will be followed by the next message on the same line. "--pretty=tformat:..." is what we should instead, which adds LF after each commit, or a more modern way to spell it, i.e. "--format=...". This existing breakage becomes easier to see, now we no longer use the pager. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2021-09-27Comment important codepaths regarding nuking untracked files/dirsElijah Newren1-1/+1
In the last few commits we focused on code in unpack-trees.c that mistakenly removed untracked files or directories. There may be more of those, but in this commit we change our focus: callers of toplevel commands that are expected to remove untracked files or directories. As noted previously, we have toplevel commands that are expected to delete untracked files such as 'read-tree --reset', 'reset --hard', and 'checkout --force'. However, that does not mean that other highlevel commands that happen to call these other commands thought about or conveyed to users the possibility that untracked files could be removed. Audit the code for such callsites, and add comments near existing callsites to mention whether these are safe or not. My auditing is somewhat incomplete, though; it skipped several cases: * git-rebase--preserve-merges.sh: is in the process of being deprecated/removed, so I won't leave a note that there are likely more bugs in that script. * contrib/git-new-workdir: why is the -f flag being used in a new empty directory?? It shouldn't hurt, but it seems useless. * git-p4.py: Don't see why -f is needed for a new dir (maybe it's not and is just superfluous), but I'm not at all familiar with the p4 stuff * git-archimport.perl: Don't care; arch is long since dead * git-cvs*.perl: Don't care; cvs is long since dead Also, the reset --hard in builtin/worktree.c looks safe, due to only running in an empty directory. Signed-off-by: Elijah Newren <newren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2017-07-26contrib/rerere-train: optionally overwrite existing resolutionsRaman Gupta1-2/+52
Provide the user an option to overwrite existing resolutions using an `--overwrite` flag. This might be used, for example, if the user knows that they already have an entry in their rerere cache for a conflict, but wish to drop it and retrain based on the merge commit(s) passed to the rerere-train script. Signed-off-by: Raman Gupta <rocketraman@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-11-20Escape Git's exec path in contrib/rerere-train.sh scriptDaniel Knittl-Frank1-1/+1
Whitespace can cause the source command to fail. This is usually not a problem on Unix systems, but on Windows Git is likely to be installed under "C:/Program Files/", thus rendering the script broken. Signed-off-by: Daniel Knittl-Frank <knittl89+git@googlemail.com> Signed-off-by: Jeff King <peff@peff.net>
2012-04-30contrib/rerere-train: use installed git-sh-setupJunio C Hamano1-1/+1
Instead of sourcing git-sh-setup from random place that is on the $PATH, explicitly source $(git --exec-path)/git-sh-setup. As I do not personally have any libexec/git-core directory on my $PATH like many other people, the script will fail without this update. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-09-29Add contrib/rerere-train scriptNanako Shiraishi1-0/+52
This script takes a range of commits (e.g. maint..next) as its arguments, recreates merge commits in the range to prime rr-cache database. Signed-off-by: Nanako Shiraishi <nanako3@lavabit.com> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>