summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2019-07-31t/lib-rebase: prepare for testing `git rebase --rebase-merges`Libravatar Johannes Schindelin1-4/+5
The format of the todo list is quite a bit different in the `--rebase-merges` mode; Let's prepare the fake editor to handle those todo lists properly, too. The original idea was that we keep the original command unless overridden, and because the original todo lists only had `pick` lines anyway, we could be sloppy and "override" the command by the same command (i.e. use the sed replacement pattern "pick" instead of "&"). This actually would not have worked with `fixup` and `squash` commands, but it would appear that we never tried to use the fake editor with `--autosquash`. However, in the next commit we want to use the fake editor in conjunction with `--rebase-merges`, so let's use the correct sed replacement pattern. Technically, it is not necessary to take care of the `fakesha` thing (where we reuse the sed replacement pattern to craft a new todo command), at least for now, as the only user of that thing overrides the `action` anyway. Nevertheless, for completeness' sake, we do take care of it. Helped-by: brian m. carlson <sandals@crustytoothpaste.net> Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2019-07-31rebase -r: support merge strategies other than `recursive`Libravatar Johannes Schindelin5-23/+33
We already support merge strategies in the sequencer, but only for `pick` commands. With this commit, we now also support them in `merge` commands. The approach is simple: if any merge strategy option is specified, or if any merge strategy other than `recursive` is specified, we simply spawn the `git merge` command. Otherwise, we handle the merge in-process just as before. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2019-07-31t3427: fix another incorrect assumptionLibravatar Johannes Schindelin1-3/+4
The test case that concerns `git rebase -Xsubtree` (with the default rebase backend, not with `--preserve-merges`) starts out with a pre-rebase commit history that begins with a commit that introduces three files: master1.t, master2.t and master3.t. This commit was generated by passing a subtree merge commit through `git filter-branch --subdirectory-filter`, so it looks as if this commit really introduces all those files. The commit history onto which this commit is then rebased, however, introduced those files in individual commits. For that reason, the rebase will fail, it _must_ fail, because the first `pick` results in no changes to be committed. Let's fix the test case to expect exactly this situation. With this change, we can mark the original bug that this test case tried to demonstrate as fixed. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2019-07-31t3427: accommodate for the `rebase --merge` backend having been replacedLibravatar Johannes Schindelin1-2/+2
Since 68aa495b590 (rebase: implement --merge via the interactive machinery, 2018-12-11), the job of the old `--merge` backend is now performed by the `--interactive` backend, too. One consequence is that empty commits are no longer rebased by default. Meaning that the test case that calls `git rebase -Xsubtree` (which used to be handled by the `--merge` backend) now needs to ask explicitly for the empty commit to be rebased. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2019-07-31t3427: fix erroneous assumptionLibravatar Johannes Schindelin1-3/+3
Apart from the `setup` test case, `t3427-rebase-subtree.sh` is made up exclusively of demonstrations of breakages. The tricky thing about such demonstrations is that they are often buggy themselves. In this instance, somewhere over the course of the six iterations of the patch that eventually made it into Git's `master` as 5f35900849e (contrib/subtree: Add a test for subtree rebase that loses commits, 2016-06-28), the commit message "files_subtree/master4" was changed to just "master4", but the test cases still expected the old commit message. Let's fix this, at long last. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2019-07-31t3427: condense the unnecessarily repetitive test cases into threeLibravatar Johannes Schindelin1-50/+11
Previously, this test script performed essentially three rebases and verified breakages by testing the post-rebase commits' messages. To do so, the rebases were performed multiple times, though, once per commit message to test. This wastes electricity (and CO2) and time. Let's condense the test cases to the essential number: the number of different rebases to validate. On Windows, where the scripted nature of the `--preserve-merges` backend hurts performance rather badly, this reduces the overall runtime in this developer's setup from ~1m to ~28s while still performing the exact same testing as before. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2019-07-31t3427: move the `filter-branch` invocation into the `setup` caseLibravatar Johannes Schindelin1-25/+13
The step to prepare a pre-rebase commit history is _identical_ in _all_ of the test cases (except of course the `setup` case). It should therefore clearly a part of the `setup` test case instead. As the `git filter-branch` command is quite costly on platforms where Unix shell scripting is simply slow (meaning: on Windows), this shaves off a noticeable part of the runtime: in this developer's setup, the time was reduced from ~1m25s to ~1m. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2019-07-31t3427: simplify the `setup` test case significantlyLibravatar Johannes Schindelin1-21/+15
It still does the very same thing as before, but expresses it in a much more succinct (and still quite readable) manner. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2019-07-31t3427: add a clarifying commentLibravatar Johannes Schindelin1-0/+28
The flow of this test script is outright confusing, and to start the endeavor to address that, let's describe what this test is all about, and how it tries to do it. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2019-07-31rebase: fold git-rebase--common into the -p backendLibravatar Johannes Schindelin5-73/+56
The only remaining scripted part of `git rebase` is the `--preserve-merges` backend. Meaning: there is little reason to keep the "library of common rebase functions" as a separate file. While moving the functions to `git-rebase--preserve-merges.sh`, we also drop the `move_to_original_branch` function that is no longer used. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2019-07-31sequencer: the `am` and `rebase--interactive` scripts are goneLibravatar Johannes Schindelin1-1/+1
Update a code comment that referred to those files as if they were still there. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2019-07-31.gitignore: there is no longer a built-in `git-rebase--interactive`Libravatar Johannes Schindelin1-1/+0
This went away in 0609b741a4 (rebase -i: combine rebase--interactive.c with rebase.c, 2019-04-17). Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2019-07-31t3400: stop referring to the scripted rebaseLibravatar Johannes Schindelin1-1/+1
One test case's title mentioned the then-current implementation detail that the `--am` backend was implemented in `git-rebase--am.sh`. This is no longer the case, so let's update the title to reflect the current reality. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2019-07-31Drop unused git-rebase--am.shLibravatar Johannes Schindelin4-91/+0
Since 21853626ea (built-in rebase: call `git am` directly, 2019-01-18), the built-in rebase already uses the built-in `git am` directly. Now that d03ebd411c (rebase: remove the rebase.useBuiltin setting, 2019-03-18) even removed the scripted rebase, there is no longer any user of `git-rebase--am.sh`, so let's just remove it. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2019-07-25git: mark cmd_rebase as requiring a worktreeLibravatar Johannes Schindelin2-10/+1
We skipped marking the "rebase" built-in as requiring a .git/ directory and a worktree only to allow to spawn the scripted version of `git rebase`. Now that we no longer have that escape hatch, we can change that to the canonical form. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2019-07-25rebase: fix white-spaceLibravatar Johannes Schindelin1-1/+1
This trailing space was inadvertently introduced in 9fbcc3d203 (Merge branch 'js/rebase-orig-head-fix', 2019-03-20). Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2019-06-07Git 2.22Libravatar Junio C Hamano1-1/+1
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2019-06-07Merge tag 'l10n-2.22.0-rnd3' of git://github.com/git-l10n/git-poLibravatar Junio C Hamano11-33731/+43398
l10n-2.22.0-rnd3 * tag 'l10n-2.22.0-rnd3' of git://github.com/git-l10n/git-po: (25 commits) l10n: fr.po: Review French translation l10n: de.po: Update German translation l10n: de.po: improve description of 'git reset --quiet' l10n: TEAMS: Change German translation team leader l10n: bg.po: Updated Bulgarian translation (4581t) l10n: zh_CN: Revision for git v2.22.0 l10n l10n: zh_CN: for git v2.22.0 l10n round 1~3 l10n: es: 2.22.0 round 3 l10n: it.po: Updated Italian translation l10n: fr v2.22.0 rnd 3 l10n: vi.po(4581t): Updated Vietnamese translation for v2.22.0 round 3 l10n: git.pot: v2.22.0 round 3 (3 new, 2 removed) l10n: es: 2.22.0 round 2 l10n: bg.po: Updated Bulgarian translation (4580t) l10n: vi.po(4580t): Updated Vietnamese translation for v2.22.0 round 2 l10n: fr.po v2.22.0 round 2 l10n: git.pot: v2.22.0 round 2 (6 new, 3 removed) l10n: bg.po: Updated Bulgarian translation (4577t) l10n: es: 2.22.0 round 1 l10n: vi.po(4577t): Updated Vietnamese translation for v2.22.0 round 1 ...
2019-06-07Merge branch 'fr_review' of git://github.com/jnavila/gitLibravatar Jiang Xin1-15/+15
* 'fr_review' of git://github.com/jnavila/git: l10n: fr.po: Review French translation
2019-06-07Merge branch 'master' of git://github.com/alshopov/git-poLibravatar Jiang Xin1-7/+11
* 'master' of git://github.com/alshopov/git-po: l10n: bg.po: Updated Bulgarian translation (4581t)
2019-06-07l10n: fr.po: Review French translationLibravatar Cédric Malard1-15/+15
Signed-off-by: Cédric Malard <c.malard-git@valdun.net> Signed-off-by: Jean-Noel Avila <jn.avila@free.fr>
2019-06-06Merge branch 'en/merge-directory-renames-fix'Libravatar Junio C Hamano2-0/+117
Recent code restructuring of merge-recursive engine introduced a regression dealing with rename/add conflict. * en/merge-directory-renames-fix: merge-recursive: restore accidentally dropped setting of path
2019-06-06l10n: de.po: Update German translationLibravatar Matthias Rüster1-3074/+4139
Reviewed-by: Ralf Thielow <ralf.thielow@gmail.com> Signed-off-by: Matthias Rüster <matthias.ruester@gmail.com>
2019-06-06l10n: de.po: improve description of 'git reset --quiet'Libravatar Ralf Thielow1-1/+1
Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
2019-06-05l10n: TEAMS: Change German translation team leaderLibravatar Matthias Rüster1-3/+3
Acked-by: Ralf Thielow <ralf.thielow@gmail.com> Signed-off-by: Matthias Rüster <matthias.ruester@gmail.com>
2019-06-05merge-recursive: restore accidentally dropped setting of pathLibravatar Elijah Newren2-0/+117
In commit 8daec1df03de ("merge-recursive: switch from (oid,mode) pairs to a diff_filespec", 2019-04-05), we actually switched from (oid,mode,path) triplets to a diff_filespec -- but most callsites in the patch only needed to worry about oid and mode so the commit message focused on that. The oversight in the commit message apparently spilled over to the code as well; one of the dozen or so callsites accidentally dropped the setting of the path in the conversion. Restore the path setting in that location. Also, this pointed out that our testsuite was lacking a good rename/add test, at least one that involved the need for merge content with the rename. Add such a test, and since rename/add vs. add/rename could possibly be important, redo the merge the opposite direction to make sure we don't have issues with the direction of the merge. These testcases failed before restoring the setting of path, but with the paths appropriately set the testcases both pass. Reported-by: Ben Humphreys <behumphreys@atlassian.com> Based-on-patch-by: SZEDER Gábor <szeder.dev@gmail.com> Tested-by: Ben Humphreys <behumphreys@atlassian.com> Signed-off-by: Elijah Newren <newren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2019-06-05l10n: bg.po: Updated Bulgarian translation (4581t)Libravatar Alexander Shopov1-7/+11
Signed-off-by: Alexander Shopov <ash@kambanaria.org>
2019-06-05l10n: zh_CN: Revision for git v2.22.0 l10nLibravatar Fangyi Zhou2-54/+54
Revise 51 translations, improving consistency for some phrased. Update email address for Fangyi Zhou Signed-off-by: Fangyi Zhou <me@fangyi.io> Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
2019-06-05l10n: zh_CN: for git v2.22.0 l10n round 1~3Libravatar Jiang Xin1-3040/+4015
Translate 274 new messages (4581t0f0u) for git 2.22.0. Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
2019-06-05Merge branch '2.22' of https://github.com/ChrisADR/git-poLibravatar Jiang Xin1-8/+12
* '2.22' of https://github.com/ChrisADR/git-po: l10n: es: 2.22.0 round 3
2019-06-05Merge branch 'it-l10n-wip' of github.com:AlessandroMenti/git-poLibravatar Jiang Xin1-4745/+6015
* 'it-l10n-wip' of github.com:AlessandroMenti/git-po: l10n: it.po: Updated Italian translation
2019-06-04l10n: es: 2.22.0 round 3Libravatar Christopher Diaz Riveros1-8/+12
Signed-off-by: Christopher Diaz Riveros <chrisadr@gentoo.org>
2019-06-04l10n: it.po: Updated Italian translationLibravatar Alessandro Menti1-4745/+6015
Signed-off-by: Alessandro Menti <alessandro.menti@alessandromenti.it>
2019-06-04l10n: fr v2.22.0 rnd 3Libravatar Jean-Noël Avila1-10/+16
Signed-off-by: Jean-Noël Avila <jn.avila@free.fr>
2019-06-04l10n: vi.po(4581t): Updated Vietnamese translation for v2.22.0 round 3Libravatar Tran Ngoc Quan1-12/+16
Signed-off-by: Tran Ngoc Quan <vnwildman@gmail.com>
2019-06-04l10n: git.pot: v2.22.0 round 3 (3 new, 2 removed)Libravatar Jiang Xin1-6/+10
Generate po/git.pot from v2.22.0-rc3 for git v2.22.0 l10n round 3. Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
2019-06-04Merge branch 'master' of git://git.kernel.org/pub/scm/git/gitLibravatar Jiang Xin11-126/+54
* 'master' of git://git.kernel.org/pub/scm/git/git: Git 2.22-rc3 i18n: fix typos found during l10n for git 2.22.0 RelNotes: minor typo fixes in 2.22.0 draft list-objects-filter: disable 'sparse:path' filters
2019-06-03Git 2.22-rc3Libravatar Junio C Hamano2-1/+8
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2019-06-03Merge branch 'cc/list-objects-filter-wo-sparse-path'Libravatar Junio C Hamano7-116/+37
Disable "--filter=sparse:path=<path>" that would allow reading from paths on the filesystem. * cc/list-objects-filter-wo-sparse-path: list-objects-filter: disable 'sparse:path' filters
2019-06-03i18n: fix typos found during l10n for git 2.22.0Libravatar Jiang Xin2-3/+3
Fix two typos introduced by the following commits: + 31fba9d3b4 (diff-parseopt: convert --[src|dst]-prefix, 2019-03-24) + ed8b4132c8 (remote-curl: mark all error messages for translation, 2019-03-05) Signed-off-by: Jiang Xin <worldhello.net@gmail.com> Acked-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2019-06-03RelNotes: minor typo fixes in 2.22.0 draftLibravatar Todd Zullinger1-6/+6
Signed-off-by: Todd Zullinger <tmz@pobox.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2019-06-03l10n: es: 2.22.0 round 2Libravatar Christopher Diaz Riveros1-381/+394
Signed-off-by: Christopher Diaz Riveros <chrisadr@gentoo.org>
2019-06-02Merge branch 'master' of https://github.com/vnwildman/gitLibravatar Jiang Xin1-383/+396
* 'master' of https://github.com/vnwildman/git: l10n: vi.po(4580t): Updated Vietnamese translation for v2.22.0 round 2
2019-06-02Merge branch 'master' of git://github.com/alshopov/git-poLibravatar Jiang Xin1-1577/+1590
* 'master' of git://github.com/alshopov/git-po: l10n: bg.po: Updated Bulgarian translation (4580t)
2019-06-02l10n: bg.po: Updated Bulgarian translation (4580t)Libravatar Alexander Shopov1-1577/+1590
Signed-off-by: Alexander Shopov <ash@kambanaria.org>
2019-06-01l10n: vi.po(4580t): Updated Vietnamese translation for v2.22.0 round 2Libravatar Tran Ngoc Quan1-383/+396
Signed-off-by: Tran Ngoc Quan <vnwildman@gmail.com>
2019-05-31l10n: fr.po v2.22.0 round 2Libravatar Jean-Noël Avila1-434/+537
Signed-off-by: Jean-Noël Avila <jn.avila@free.fr>
2019-05-31l10n: git.pot: v2.22.0 round 2 (6 new, 3 removed)Libravatar Jiang Xin1-378/+391
Generate po/git.pot from v2.22.0-rc2 for git v2.22.0 l10n round 2. Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
2019-05-31Merge branch 'master' of git://git.kernel.org/pub/scm/git/gitLibravatar Jiang Xin95-553/+1001
* 'master' of git://git.kernel.org/pub/scm/git/git: (66 commits) Git 2.22-rc2 ...
2019-05-31Merge branch 'master' of https://github.com/Softcatala/git-poLibravatar Jiang Xin1-4465/+4516
* 'master' of https://github.com/Softcatala/git-po: l10n: Update Catalan translation