summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2022-06-26l10n: ru.po: update Russian translationDimitriy Ryazantcev1-12974/+10330
Signed-off-by: Dimitriy Ryazantcev <dimitriy.ryazantcev@gmail.com> Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
2022-06-26Merge branch 'l10n/zh_TW/220623' of github.com:l10n-tw/git-poJiang Xin1-13955/+12996
* 'l10n/zh_TW/220623' of github.com:l10n-tw/git-po: l10n: zh_TW: v2.37.0 round 1
2022-06-25l10n: zh_TW: v2.37.0 round 1Yi-Jyun Pan1-13955/+12996
Signed-off-by: Yi-Jyun Pan <pan93412@gmail.com>
2022-06-25Merge branch 'master' of github.com:vnwildman/gitJiang Xin1-12953/+7839
* 'master' of github.com:vnwildman/git: l10n: vi(5367t): Updated translation
2022-06-25l10n: vi(5367t): Updated translationTran Ngoc Quan1-12953/+7839
Signed-off-by: Tran Ngoc Quan <vnwildman@gmail.com>
2022-06-24l10n: fr v2.37 round 1Jean-Noël Avila1-13724/+7931
Signed-off-by: Jean-Noël Avila <jn.avila@free.fr>
2022-06-24l10n: Update Catalan translationJordi Mas1-13360/+8338
Signed-off-by: Jordi Mas <jmas@softcatala.org>
2022-06-23Merge branch 'ab/credentials-in-url-more'Junio C Hamano1-1/+1
* ab/credentials-in-url-more: Documentation/config/transfer.txt: fix typo
2022-06-23Documentation/config/transfer.txt: fix typoTaylor Blau1-1/+1
Commit 7281c196b1 (transfer doc: move fetch.credentialsInUrl to "transfer" config namespace, 2022-06-15) propagates a typo from 6dcbdc0d66 (remote: create fetch.credentialsInUrl config, 2022-06-06), where "other" is misspelled as "oher". Fix the typo accordingly. Signed-off-by: Taylor Blau <me@ttaylorr.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2022-06-23rev-parse: documentation adjustment - mention remote tracking with @{u}Tao Klerks1-9/+6
The documentation explained the conversion from remote branch path to local tracking ref path for @{push}, but not for @{upstream}. Add the explanation to @{upstream}, and reference it in @{push} to avoid undue repetition. Signed-off-by: Tao Klerks <tao@klerks.biz> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2022-06-23Merge branch 'po-id' of github.com:bagasme/git-poJiang Xin1-12673/+12990
* 'po-id' of github.com:bagasme/git-po: l10n: po-id for 2.37 (first batch)
2022-06-23Git 2.36.2v2.36.2Johannes Schindelin2-5/+11
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2022-06-23Sync with 2.35.4Johannes Schindelin11-12/+282
* maint-2.35: Git 2.35.4 Git 2.34.4 Git 2.33.4 Git 2.32.3 Git 2.31.4 Git 2.30.5 setup: tighten ownership checks post CVE-2022-24765 git-compat-util: allow root to access both SUDO_UID and root owned t0034: add negative tests and allow git init to mostly work under sudo git-compat-util: avoid failing dir ownership checks if running privileged t: regression git needs safe.directory when using sudo
2022-06-23Git 2.35.4v2.35.4Johannes Schindelin3-2/+9
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2022-06-23Sync with 2.34.4Johannes Schindelin10-12/+275
* maint-2.34: Git 2.34.4 Git 2.33.4 Git 2.32.3 Git 2.31.4 Git 2.30.5 setup: tighten ownership checks post CVE-2022-24765 git-compat-util: allow root to access both SUDO_UID and root owned t0034: add negative tests and allow git init to mostly work under sudo git-compat-util: avoid failing dir ownership checks if running privileged t: regression git needs safe.directory when using sudo
2022-06-23Git 2.34.4v2.34.4Johannes Schindelin3-2/+8
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2022-06-23Sync with 2.33.4Johannes Schindelin9-12/+269
* maint-2.33: Git 2.33.4 Git 2.32.3 Git 2.31.4 Git 2.30.5 setup: tighten ownership checks post CVE-2022-24765 git-compat-util: allow root to access both SUDO_UID and root owned t0034: add negative tests and allow git init to mostly work under sudo git-compat-util: avoid failing dir ownership checks if running privileged t: regression git needs safe.directory when using sudo
2022-06-23Git 2.33.4v2.33.4Johannes Schindelin3-2/+8
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2022-06-23Sync with 2.32.3Johannes Schindelin8-12/+263
* maint-2.32: Git 2.32.3 Git 2.31.4 Git 2.30.5 setup: tighten ownership checks post CVE-2022-24765 git-compat-util: allow root to access both SUDO_UID and root owned t0034: add negative tests and allow git init to mostly work under sudo git-compat-util: avoid failing dir ownership checks if running privileged t: regression git needs safe.directory when using sudo
2022-06-23Git 2.32.3v2.32.3Johannes Schindelin3-2/+8
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2022-06-23Sync with 2.31.4Johannes Schindelin7-12/+257
* maint-2.31: Git 2.31.4 Git 2.30.5 setup: tighten ownership checks post CVE-2022-24765 git-compat-util: allow root to access both SUDO_UID and root owned t0034: add negative tests and allow git init to mostly work under sudo git-compat-util: avoid failing dir ownership checks if running privileged t: regression git needs safe.directory when using sudo
2022-06-23Git 2.31.4v2.31.4Johannes Schindelin3-2/+8
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2022-06-23Sync with 2.30.5Johannes Schindelin6-12/+251
* maint-2.30: Git 2.30.5 setup: tighten ownership checks post CVE-2022-24765 git-compat-util: allow root to access both SUDO_UID and root owned t0034: add negative tests and allow git init to mostly work under sudo git-compat-util: avoid failing dir ownership checks if running privileged t: regression git needs safe.directory when using sudo
2022-06-23Git 2.30.5v2.30.5Johannes Schindelin3-2/+14
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2022-06-23setup: tighten ownership checks post CVE-2022-24765Carlo Marcelo Arenas Belón1-11/+60
8959555cee7 (setup_git_directory(): add an owner check for the top-level directory, 2022-03-02), adds a function to check for ownership of repositories using a directory that is representative of it, and ways to add exempt a specific repository from said check if needed, but that check didn't account for owership of the gitdir, or (when used) the gitfile that points to that gitdir. An attacker could create a git repository in a directory that they can write into but that is owned by the victim to work around the fix that was introduced with CVE-2022-24765 to potentially run code as the victim. An example that could result in privilege escalation to root in *NIX would be to set a repository in a shared tmp directory by doing (for example): $ git -C /tmp init To avoid that, extend the ensure_valid_ownership function to be able to check for all three paths. This will have the side effect of tripling the number of stat() calls when a repository is detected, but the effect is expected to be likely minimal, as it is done only once during the directory walk in which Git looks for a repository. Additionally make sure to resolve the gitfile (if one was used) to find the relevant gitdir for checking. While at it change the message printed on failure so it is clear we are referring to the repository by its worktree (or gitdir if it is bare) and not to a specific directory. Helped-by: Junio C Hamano <junio@pobox.com> Helped-by: Johannes Schindelin <Johannes.Schindelin@gmx.de> Signed-off-by: Carlo Marcelo Arenas Belón <carenas@gmail.com>
2022-06-23Merge branch 'cb/path-owner-check-with-sudo'Junio C Hamano4-1/+179
With a recent update to refuse access to repositories of other people by default, "sudo make install" and "sudo git describe" stopped working. This series intends to loosen it while keeping the safety. * cb/path-owner-check-with-sudo: t0034: add negative tests and allow git init to mostly work under sudo git-compat-util: avoid failing dir ownership checks if running privileged t: regression git needs safe.directory when using sudo Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2022-06-23l10n: po-id for 2.37 (first batch)Bagas Sanjaya1-12673/+12990
Update following components: - apply.c - builtin/bisect--helper.c - builtin/fetch.c - builtin/fsck.c - builtin/log.c - builtin/notes.c - builtin/push.c - builtin/submodule--helper.c - builtin/worktree.c - index-pack.c - init-db.c - remote.c Translate following new components: - attr.c - builtin/name-rev.c - builtin/pack-objects.c - builtin/pack-refs.c - builtin/prune.c - builtin/update-server-info.c - object-file.c - object-name.c - object.c - pack-bitmap.c - pack-mtimes.c - pack-revindex.c - pack-write.c - packfile.c Besides above, fix minor grammatical issues. Signed-off-by: Bagas Sanjaya <bagasdotme@gmail.com>
2022-06-23l10n: tr: v2.37.0 round #1Emir SARI1-12895/+7746
Signed-off-by: Emir SARI <emir_sari@icloud.com>
2022-06-23Merge branch 'master' of github.com:ruester/git-po-deJiang Xin2-13111/+7964
* 'master' of github.com:ruester/git-po-de: l10n: TEAMS: Change German translation team leader l10n: de.po: Update German translation
2022-06-23Merge branch 'master' of github.com:alshopov/git-poJiang Xin1-13314/+8766
* 'master' of github.com:alshopov/git-po: l10n: bg.po: Updated Bulgarian translation (5367t)
2022-06-23Merge branch 'fz/po-zh_CN' of github.com:fangyi-zhou/git-poJiang Xin1-12744/+13006
* 'fz/po-zh_CN' of github.com:fangyi-zhou/git-po: l10n: zh_CN: v2.37.0 round 1
2022-06-23l10n: README: fix typoArthur Milchior1-1/+1
This 10-year old typo was introduced at 75b182ae (Update l10n guide: change the repository URL, etc, 2012-03-02). The word "l10" should be "l10n". Signed-off-by: Arthur Milchior <arthur@milchior.fr> Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
2022-06-22revisions.txt: escape "..." to avoid asciidoc horizontal ellipsisJeff King1-1/+1
In asciidoc's HTML output of the "gitrevisions" and "git-rev-parse" documentation, the header: The ... (three-dot) Symmetric Difference Notation is rendered using "&8230;", a horizontal ellipsis. This is visually ugly, but also hard to search for or cut-and-paste. We really mean three ascii dots (0x2e) here, so let's make sure it renders as such. The simplest way to do that is just escaping the leading dot, as the instances in the rest of the section do. Arguably this should all be converted to use backticks, which would let us drop the quoting here and elsewhere (e.g., {carat}). But that does change the rendering slightly. So let's fix the bug first, and we can decide on migrating the whole section separately. Note that this produces an empty doc-diff of the manpages. Curiously, asciidoc produces the same ellipsis entity in the XML file, but docbook then converts it back into three literal dots for the roff output! So the roff manpages have been correct all along (which may be a reason nobody noticed this until now). Reported-by: Arthur Milchior Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2022-06-22git-merge-tree.txt: add a section on potentional usage mistakesElijah Newren1-0/+53
Signed-off-by: Elijah Newren <newren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2022-06-22merge-tree: add a --allow-unrelated-histories flagElijah Newren3-2/+34
Folks may want to merge histories that have no common ancestry; provide a flag with the same name as used by `git merge` to allow this. Signed-off-by: Elijah Newren <newren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2022-06-22merge-tree: allow `ls-files -u` style info to be NUL terminatedElijah Newren3-5/+62
Much as `git ls-files` has a -z option, let's add one to merge-tree so that the conflict-info section can be NUL terminated (and avoid quoting of unusual filenames). Signed-off-by: Elijah Newren <newren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2022-06-22merge-ort: optionally produce machine-readable outputElijah Newren3-3/+23
With the new `detailed` parameter, a new mode can be triggered when displaying the merge messages: The `detailed` mode prints NUL-delimited fields of the following form: <path-count> NUL <path>... NUL <conflict-type> NUL <message> The `<path-count>` field determines how many `<path>` fields there are. The intention of this mode is to support server-side operations, where worktree-less merges can lead to conflicts and depending on the type and/or path count, the caller might know how to handle said conflict. Signed-off-by: Elijah Newren <newren@gmail.com> Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2022-06-22merge-ort: store more specific conflict informationElijah Newren1-55/+212
It is all fine and dandy for a regular Git command that is intended to be run interactively to produce a bunch of messages upon an error. However, in `merge-ort`'s case, we want to call the command e.g. in server-side software, where the actual error messages are not quite as interesting as machine-readable, immutable terms that describe the exact nature of any given conflict. With this patch, the `merge-ort` machinery records the exact type (as specified via an `enum` value) as well as the involved path(s) together with the conflict's message. Signed-off-by: Elijah Newren <newren@gmail.com> Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2022-06-22merge-ort: make `path_messages` a strmap to a string_listJohannes Schindelin3-41/+22
This allows us once again to get away with less data copying. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Elijah Newren <newren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2022-06-22merge-ort: store messages in a list, not in a single strbufJohannes Schindelin2-44/+81
To prepare for using the `merge-ort` machinery in server operations, we cannot simply produce a free-form string that combines a variable-length list of messages. Instead, we need to list them one by one. The natural fit for this is a `string_list`. We will subsequently add even more information in the `util` attribute of the string list items. Based-on-a-patch-by: Elijah Newren <newren@gmail.com> Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Elijah Newren <newren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2022-06-22merge-tree: provide easy access to `ls-files -u` style infoElijah Newren3-9/+62
Much like `git merge` updates the index with information of the form (mode, oid, stage, name) provide this output for conflicted files for merge-tree as well. Provide a --name-only option for users to exclude the mode, oid, and stage and only get the list of conflicted filenames. Signed-off-by: Elijah Newren <newren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2022-06-22merge-tree: provide a list of which files have conflictsElijah Newren3-3/+43
Callers of `git merge-tree --write-tree` will often want to know which files had conflicts. While they could potentially attempt to parse the CONFLICT notices printed, those messages are not meant to be machine readable. Provide a simpler mechanism of just printing the files (in the same format as `git ls-files` with quoting, but restricted to unmerged files) in the output before the free-form messages. Signed-off-by: Elijah Newren <newren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2022-06-22merge-ort: remove command-line-centric submodule message from merge-ortElijah Newren2-9/+2
There was one case in merge-ort that would call path_msg() multiple times for the same logical conflict, and it was in order to give advice about how to resolve a conflict. This advice does not make as much sense with remerge-diff, or with merge-tree being invoked by a GitHub GUI for resolution of messages, and is making it hard to provide which-logical-conflict-affects-which-paths information in a machine parseable way to a higher level caller of merge-tree. Let's simply remove this informational message. Signed-off-by: Elijah Newren <newren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2022-06-22merge-ort: provide a merge_get_conflicted_files() helper functionElijah Newren2-0/+52
After a merge, this function allows the user to extract the same information that would be printed by `ls-files -u`, which means files with their mode, oid, and stage. Signed-off-by: Elijah Newren <newren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2022-06-22merge-tree: support including merge messages in outputElijah Newren3-8/+97
When running `git merge-tree --write-tree`, we previously would only return an exit status reflecting the cleanness of a merge, and print out the toplevel tree of the resulting merge. Merges also have informational messages, such as: * "Auto-merging <PATH>" * "CONFLICT (content): ..." * "CONFLICT (file/directory)" * etc. In fact, when non-content conflicts occur (such as file/directory, modify/delete, add/add with differing modes, rename/rename (1to2), etc.), these informational messages may be the only notification the user gets since these conflicts are not representable in the contents of the file. Add a --[no-]messages option so that callers can request these messages be included at the end of the output. Include such messages by default when there are conflicts, and omit them by default when the merge is clean. Signed-off-by: Elijah Newren <newren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2022-06-22merge-ort: split out a separate display_update_messages() functionElijah Newren2-37/+49
This patch includes no new code; it simply moves a bunch of lines into a new function. As such, there are no functional changes. This is just a preparatory step to allow the printed messages to be handled differently by other callers, such as in `git merge-tree --write-tree`. (Patch best viewed with --color-moved --color-moved-ws=allow-indentation-change to see that it is a simple code movement.) Signed-off-by: Elijah Newren <newren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2022-06-22merge-tree: implement real mergesElijah Newren3-12/+231
This adds the ability to perform real merges rather than just trivial merges (meaning handling three way content merges, recursive ancestor consolidation, renames, proper directory/file conflict handling, and so forth). However, unlike `git merge`, the working tree and index are left alone and no branch is updated. The only output is: - the toplevel resulting tree printed on stdout - exit status of 0 (clean), 1 (conflicts present), anything else (merge could not be performed; unknown if clean or conflicted) This output is meant to be used by some higher level script, perhaps in a sequence of steps like this: NEWTREE=$(git merge-tree --write-tree $BRANCH1 $BRANCH2) test $? -eq 0 || die "There were conflicts..." NEWCOMMIT=$(git commit-tree $NEWTREE -p $BRANCH1 -p $BRANCH2) git update-ref $BRANCH1 $NEWCOMMIT Note that higher level scripts may also want to access the conflict/warning messages normally output during a merge, or have quick access to a list of files with conflicts. That is not available in this preliminary implementation, but subsequent commits will add that ability (meaning that NEWTREE would be a lot more than a tree in the case of conflicts). This also marks the traditional trivial merge of merge-tree as deprecated. The trivial merge not only had limited applicability, the output format was also difficult to work with (and its format undocumented), and will generally be less performant than real merges. Signed-off-by: Elijah Newren <newren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2022-06-22merge-tree: add option parsing and initial shell for real merge functionElijah Newren2-10/+76
Let merge-tree accept a `--write-tree` parameter for choosing real merges instead of trivial merges, and accept an optional `--trivial-merge` option to get the traditional behavior. Note that these accept different numbers of arguments, though, so these names need not actually be used. Note that real merges differ from trivial merges in that they handle: - three way content merges - recursive ancestor consolidation - renames - proper directory/file conflict handling - etc. Basically all the stuff you'd expect from `git merge`, just without updating the index and working tree. The initial shell added here does nothing more than die with "real merges are not yet implemented", but that will be fixed in subsequent commits. Signed-off-by: Elijah Newren <newren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2022-06-22merge-tree: move logic for existing merge into new functionElijah Newren1-4/+8
In preparation for adding a non-trivial merge capability to merge-tree, move the existing merge logic for trivial merges into a new function. Signed-off-by: Elijah Newren <newren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2022-06-22merge-tree: rename merge_trees() to trivial_merge_trees()Elijah Newren1-4/+4
merge-recursive.h defined its own merge_trees() function, different than the one found in builtin/merge-tree.c. That was okay in the past, but we want merge-tree to be able to use the merge-ort functions, which will end up including merge-recursive.h. Rename the function found in builtin/merge-tree.c to avoid the conflict. Signed-off-by: Elijah Newren <newren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>