swh:1:snp:bb8853bfef8fcf2b1d37fd6404912c7606c98e48

sort by:
Revision Author Date Message Commit Date
d0654dc Git 2.25 Signed-off-by: Junio C Hamano <gitster@pobox.com> 13 January 2020, 18:16:43 UTC
b4615e4 Merge tag 'l10n-2.25.0-rnd1' of git://github.com/git-l10n/git-po l10n-2.25.0-rnd1 * tag 'l10n-2.25.0-rnd1' of git://github.com/git-l10n/git-po: l10n: zh_CN: for git v2.25.0 l10n round 1 l10n: Update Catalan translation l10n: de.po: Update German translation v2.25.0 round 1 l10n: de.po: Reword generation numbers l10n: bg.po: Updated Bulgarian translation (4800t) l10n: es: 2.25.0 round #1 l10n: sv.po: Update Swedish translation (4800t0f0u) l10n: fr.po v2.25.0 rnd 1 l10n: vi(4800t): Updated Vietnamese translation v2.25.0 l10n: zh_TW.po: update translation for v2.25.0 round 1 l10n: it.po: update the Italian translation for Git 2.25.0 l10n: git.pot: v2.25.0 round 1 (119 new, 13 removed) l10n: Update Catalan translation l10n: zh_TW: add translation for v2.24.0 12 January 2020, 21:28:13 UTC
4d92452 Revert "Merge branch 'ra/rebase-i-more-options'" This reverts commit 5d9324e0f4210bb7d52bcb79efe3935703083f72, reversing changes made to c58ae96fc4bb11916b62a96940bb70bb85ea5992. The topic turns out to be too buggy for real use. cf. <f2fe7437-8a48-3315-4d3f-8d51fe4bb8f1@gmail.com> 12 January 2020, 21:25:18 UTC
ddc12c4 l10n: zh_CN: for git v2.25.0 l10n round 1 Translate 119 new messages (4800t0f0u) for git 2.25.0. Signed-off-by: Jiang Xin <worldhello.net@gmail.com> 12 January 2020, 11:22:02 UTC
e23b95e Merge branch 'master' of github.com:Softcatala/git-po into git-po-master * 'master' of github.com:Softcatala/git-po: l10n: Update Catalan translation 11 January 2020, 08:04:21 UTC
1cf4836 Merge branch 'js/mingw-loosen-overstrict-tree-entry-checks' Further tweak to a "no backslash in indexed paths" for Windows port we applied earlier. * js/mingw-loosen-overstrict-tree-entry-checks: mingw: safeguard better against backslashes in file names 10 January 2020, 22:45:27 UTC
d78a196 Merge branch 'ma/config-advice-markup-fix' Documentation markup fix. * ma/config-advice-markup-fix: config/advice.txt: fix description list separator 10 January 2020, 22:45:26 UTC
a20ae3e l10n: Update Catalan translation Signed-off-by: Jordi Mas <jmas@softcatala.org> 10 January 2020, 21:21:55 UTC
49e268e mingw: safeguard better against backslashes in file names In 224c7d70fa1 (mingw: only test index entries for backslashes, not tree entries, 2019-12-31), we relaxed the check for backslashes in tree entries to check only index entries. However, the code change was incorrect: it was added to `add_index_entry_with_check()`, not to `add_index_entry()`, so under certain circumstances it was possible to side-step the protection. Besides, the description of that commit purported that all index entries would be checked when in fact they were only checked when being added to the index (there are code paths that do not do that, constructing "transient" index entries). In any case, it was pointed out in one insightful review at https://github.com/git-for-windows/git/pull/2437#issuecomment-566771835 that it would be a much better idea to teach `verify_path()` to perform the check for a backslash. This is safer, even if it comes with two notable drawbacks: - `verify_path()` cannot say _what_ is wrong with the path, therefore the user will no longer be told that there was a backslash in the path, only that the path was invalid. - The `git apply` command also calls the `verify_path()` function, and might have been able to handle Windows-style paths (i.e. with backslashes instead of forward slashes). This will no longer be possible unless the user (temporarily) sets `core.protectNTFS=false`. Note that `git add <windows-path>` will _still_ work because `normalize_path_copy_len()` will convert the backslashes to forward slashes before hitting the code path that creates an index entry. The clear advantage is that `verify_path()`'s purpose is to check the validity of the file name, therefore we naturally tap into all the code paths that need safeguarding, also implicitly into future code paths. The benefits of that approach outweigh the downsides, so let's move the check from `add_index_entry_with_check()` to `verify_path()`. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> 10 January 2020, 20:29:07 UTC
63a5650 l10n: de.po: Update German translation v2.25.0 round 1 Signed-off-by: Matthias Rüster <matthias.ruester@gmail.com> Reviewed-by: Ralf Thielow <ralf.thielow@gmail.com> Reviewed-by: Phillip Szelat <phillip.szelat@gmail.com> 10 January 2020, 11:04:03 UTC
75449c1 l10n: de.po: Reword generation numbers The english term generation is here not used in the sense of "to generate" but in the sense of "generations of beings". This corrects the initial translation from cf4c0c25 (l10n: update German translation, 2018-12-06). Fixed-by: SZEDER Gábor <szeder.dev@gmail.com> Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com> 10 January 2020, 11:04:03 UTC
6b6a980 l10n: bg.po: Updated Bulgarian translation (4800t) Signed-off-by: Alexander Shopov <ash@kambanaria.org> 09 January 2020, 15:32:25 UTC
3901d2c config/advice.txt: fix description list separator The whole submoduleAlternateErrorStrategyDie item is interpreted as being part of the supporting content of the preceding item. This is because we don't give a double-colon "::" for the separator, but just a single colon, ":". Let's fix that. There are a few other matches for [^:]:\s*$ in Documentation/config, but I didn't spot any similar bugs among them. Signed-off-by: Martin Ågren <martin.agren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 08 January 2020, 21:38:24 UTC
7a6a90c Git 2.25-rc2 Signed-off-by: Junio C Hamano <gitster@pobox.com> 08 January 2020, 20:44:13 UTC
1f5f3ff Merge branch 'ds/graph-assert-fix' Since recent updates to the log graph rendering code, drawing certain merges started triggering an assert on a condition that would no longer hold true, which has been corrected. * ds/graph-assert-fix: graph: fix lack of color in horizontal lines graph: drop assert() for merge with two collapsing parents 08 January 2020, 20:44:13 UTC
a4e4140 Merge branch 'tm/doc-submodule-absorb-fix' Typofix. * tm/doc-submodule-absorb-fix: doc: submodule: fix typo for command absorbgitdirs 08 January 2020, 20:44:12 UTC
202f68b Merge branch 'pm/am-in-body-header-doc-update' Doc update. * pm/am-in-body-header-doc-update: am: document that Date: can appear as an in-body header 08 January 2020, 20:44:12 UTC
7e65f86 Merge branch 'jb/doc-multi-pack-idx-fix' Typofix. * jb/doc-multi-pack-idx-fix: multi-pack-index: correct configuration in documentation 08 January 2020, 20:44:12 UTC
c5dc206 Merge branch 'do/gitweb-typofix-in-comments' Typofix. * do/gitweb-typofix-in-comments: gitweb: fix a couple spelling errors in comments 08 January 2020, 20:44:11 UTC
fe47c9c Merge https://github.com/prati0100/git-gui * https://github.com/prati0100/git-gui: git-gui: allow opening currently selected file in default app git-gui: allow closing console window with Escape git gui: fix branch name encoding error git-gui: revert untracked files by deleting them git-gui: update status bar to track operations git-gui: consolidate naming conventions 08 January 2020, 19:18:06 UTC
a1087c9 graph: fix lack of color in horizontal lines In some cases, horizontal lines in rendered graphs can lose their coloring. This is due to a use of graph_line_addch() instead of graph_line_write_column(). Using a ternary operator to pick the character is nice for compact code, but we actually need a column to provide the color. Add a test to t4215-log-skewed-merges.sh to prevent regression. Reported-by: Jeff King <peff@peff.net> Signed-off-by: Derrick Stolee <dstolee@microsoft.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 08 January 2020, 17:37:18 UTC
0d251c3 graph: drop assert() for merge with two collapsing parents When "git log --graph" shows a merge commit that has two collapsing lines, like: | | | | * | |_|_|/| |/| | |/ | | |/| | |/| | | * | | * | | | we trigger an assert(): graph.c:1228: graph_output_collapsing_line: Assertion `graph->mapping[i - 3] == target' failed. The assert was introduced by eaf158f8 ("graph API: Use horizontal lines for more compact graphs", 2009-04-21), which is quite old. This assert is trying to say that when we complete a horizontal line with a single slash, it is because we have reached our target. It is actually the _second_ collapsing line that hits this assert. The reason we are in this code path is because we are collapsing the first line, and in that case we are hitting our target now that the horizontal line is complete. However, the second line cannot be a horizontal line, so it will collapse without horizontal lines. In this case, it is inappropriate to assert that we have reached our target, as we need to continue for another column before reaching the target. Dropping the assert is safe here. The new behavior in 0f0f389f12 (graph: tidy up display of left-skewed merges, 2019-10-15) caused the behavior change that made this assertion failure possible. In addition to making the assert possible, it also changed how multiple edges collapse. In a larger example, the current code will output a collapse as follows: | | | | | | * | |_|_|_|_|/|\ |/| | | | |/ / | | | | |/| / | | | |/| |/ | | |/| |/| | |/| |/| | | | |/| | | | | * | | | However, the intended collapse should allow multiple horizontal lines as follows: | | | | | | * | |_|_|_|_|/|\ |/| | | | |/ / | | |_|_|/| / | |/| | | |/ | | | |_|/| | | |/| | | | | * | | | This behavior is not corrected by this change, but is noted for a later update. Helped-by: Jeff King <peff@peff.net> Reported-by: Bradley Smith <brad@brad-smith.co.uk> Signed-off-by: Derrick Stolee <dstolee@microsoft.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 08 January 2020, 17:35:07 UTC
042ed3e The final batch before -rc2 Signed-off-by: Junio C Hamano <gitster@pobox.com> 06 January 2020, 22:17:51 UTC
0f1930c Merge branch 'ds/sparse-cone' Code cleanup. * ds/sparse-cone: Documentation/git-sparse-checkout.txt: fix a typo sparse-checkout: use extern for global variables 06 January 2020, 22:17:51 UTC
037f067 Merge branch 'ds/commit-graph-set-size-mult' The code to write split commit-graph file(s) upon fetching computed bogus value for the parameter used in splitting the resulting files, which has been corrected. * ds/commit-graph-set-size-mult: commit-graph: prefer default size_mult when given zero 06 January 2020, 22:17:51 UTC
f25f04e Merge branch 'en/merge-recursive-oid-eq-simplify' Code cleanup. * en/merge-recursive-oid-eq-simplify: merge-recursive: remove unnecessary oid_eq function 06 January 2020, 22:17:51 UTC
c20d4fd Merge branch 'ds/sparse-list-in-cone-mode' "git sparse-checkout list" subcommand learned to give its output in a more concise form when the "cone" mode is in effect. * ds/sparse-list-in-cone-mode: sparse-checkout: document interactions with submodules sparse-checkout: list directories in cone mode 06 January 2020, 22:17:51 UTC
a578ef9 Merge branch 'js/mingw-loosen-overstrict-tree-entry-checks' An earlier update to Git for Windows declared that a tree object is invalid if it has a path component with backslash in it, which was overly strict, which has been corrected. The only protection the Windows users need is to prevent such path (or any path that their filesystem cannot check out) from entering the index. * js/mingw-loosen-overstrict-tree-entry-checks: mingw: only test index entries for backslashes, not tree entries 06 January 2020, 22:17:50 UTC
c4117fc Merge branch 'pb/clarify-line-log-doc' Doc update. * pb/clarify-line-log-doc: doc: log, gitk: line-log arguments must exist in starting revision doc: log, gitk: document accepted line-log diff formats 06 January 2020, 22:17:50 UTC
556f025 Merge branch 'ew/packfile-syscall-optim' Code cleanup. * ew/packfile-syscall-optim: packfile: replace lseek+read with pread packfile: remove redundant fcntl F_GETFD/F_SETFD 06 January 2020, 22:17:50 UTC
5814d44 doc: submodule: fix typo for command absorbgitdirs The sentence wants to talk about the superproject's possesive, not plural form. Signed-off-by: Thomas Menzel <dev@tomsit.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> 06 January 2020, 17:24:46 UTC
7fdc5f2 l10n: es: 2.25.0 round #1 Signed-off-by: Christopher Diaz Riveros <christopher.diaz.riv@gmail.com> 06 January 2020, 14:18:43 UTC
f8740c5 am: document that Date: can appear as an in-body header Similar to "From:" and "Subject:" already mentioned in the documentation, "Date:" can also appear as an in-body header to override the value in the e-mail headers. Document it. Signed-off-by: Paul Menzel <pmenzel@molgen.mpg.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> 04 January 2020, 23:12:39 UTC
4e2c4c0 gitweb: fix a couple spelling errors in comments Signed-off-by: Denis Ovsienko <denis@ovsienko.info> Signed-off-by: Junio C Hamano <gitster@pobox.com> 04 January 2020, 23:09:33 UTC
421c0ff multi-pack-index: correct configuration in documentation It's core.multiPackIndex, not pack.multiIndex. Signed-off-by: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> 04 January 2020, 23:02:06 UTC
757ff35 Documentation/git-sparse-checkout.txt: fix a typo This typo was introduced in 94c0956b60 (sparse-checkout: create builtin with 'list' subcommand, 2019-11-21). Signed-off-by: Taylor Blau <me@ttaylorr.com> Acked-by: Derrick Stolee <dstolee@microsoft.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 04 January 2020, 22:40:29 UTC
0d2116c Merge branch 'zs/open-current-file' Allow opening the currently selected file in its default app by clicking on its name. * zs/open-current-file: git-gui: allow opening currently selected file in default app 04 January 2020, 21:08:03 UTC
9d48668 l10n: sv.po: Update Swedish translation (4800t0f0u) Signed-off-by: Peter Krefting <peter@softwolves.pp.se> 04 January 2020, 18:53:30 UTC
3a05aac Merge branch 'fr_v2.25.0_rnd1' of github.com:jnavila/git into master * 'fr_v2.25.0_rnd1' of github.com:jnavila/git: l10n: fr.po v2.25.0 rnd 1 04 January 2020, 00:46:36 UTC
4c50816 l10n: fr.po v2.25.0 rnd 1 Signed-off-by: Jean-Noël Avila <jn.avila@free.fr> 03 January 2020, 17:47:15 UTC
5bb4574 l10n: vi(4800t): Updated Vietnamese translation v2.25.0 Signed-off-by: Tran Ngoc Quan <vnwildman@gmail.com> 03 January 2020, 07:12:58 UTC
63020f1 commit-graph: prefer default size_mult when given zero In 50f26bd ("fetch: add fetch.writeCommitGraph config setting", 2019-09-02), the fetch builtin added the capability to write a commit-graph using the "--split" feature. This feature creates multiple commit-graph files, and those can merge based on a set of "split options" including a size multiple. The default size multiple is 2, which intends to provide a log_2 N depth of the commit-graph chain where N is the number of commits. However, I noticed during dogfooding that my commit-graph chains were becoming quite large when left only to builds by 'git fetch'. It turns out that in split_graph_merge_strategy(), we default the size_mult variable to 2 except we override it with the context's split_opts if they exist. In builtin/fetch.c, we create such a split_opts, but do not populate it with values. This problem is due to two failures: 1. It is unclear that we can add the flag COMMIT_GRAPH_WRITE_SPLIT with a NULL split_opts. 2. If we have a non-NULL split_opts, then we override the default values even if a zero value is given. Correct both of these issues. First, do not override size_mult when the options provide a zero value. Second, stop creating a split_opts in the fetch builtin. Signed-off-by: Derrick Stolee <dstolee@microsoft.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 02 January 2020, 21:46:34 UTC
224c7d7 mingw: only test index entries for backslashes, not tree entries During a clone of a repository that contained a file with a backslash in its name in the past, as of v2.24.1(2), Git for Windows prints errors like this: error: filename in tree entry contains backslash: '\' The idea is to prevent Git from even trying to write files with backslashes in their file names: while these characters are valid in file names on other platforms, on Windows it is interpreted as directory separator (which would obviously lead to ambiguities, e.g. when there is a file `a\b` and there is also a file `a/b`). Arguably, this is the wrong layer for that error: As long as the user never checks out the files whose names contain backslashes, there should not be any problem in the first place. So let's loosen the requirements: we now leave tree entries with backslashes in their file names alone, but we do require any entries that are added to the Git index to contain no backslashes on Windows. Note: just as before, the check is guarded by `core.protectNTFS` (to allow overriding the check by toggling that config setting), and it is _only_ performed on Windows, as the backslash is not a directory separator elsewhere, even when writing to NTFS-formatted volumes. An alternative approach would be to try to prevent creating files with backslashes in their file names. However, that comes with its own set of problems. For example, `git config -f C:\ProgramData\Git\config ...` is a very valid way to specify a custom config location, and we obviously do _not_ want to prevent that. Therefore, the approach chosen in this patch would appear to be better. This addresses https://github.com/git-for-windows/git/issues/2435 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> 02 January 2020, 20:56:08 UTC
8679ef2 Git 2.25-rc1 Signed-off-by: Junio C Hamano <gitster@pobox.com> 02 January 2020, 20:38:30 UTC
a82027e Merge branch 'js/use-test-tool-on-path' Test fix. * js/use-test-tool-on-path: t3008: find test-tool through path lookup 02 January 2020, 20:38:30 UTC
13432fc Merge branch 'js/mingw-reserved-filenames' Forbid pathnames that the platform's filesystem cannot represent on MinGW. * js/mingw-reserved-filenames: mingw: refuse paths containing reserved names mingw: short-circuit the conversion of `/dev/null` to UTF-16 02 January 2020, 20:38:30 UTC
e0e1ac5 Merge branch 'en/rebase-signoff-fix' "git rebase --signoff" stopped working when the command was written in C, which has been corrected. * en/rebase-signoff-fix: rebase: fix saving of --signoff state for am-based rebases 02 January 2020, 20:38:30 UTC
b76a244 Merge branch 'em/freebsd-cirrus-ci' * em/freebsd-cirrus-ci: CI: add FreeBSD CI support via Cirrus-CI 02 January 2020, 20:38:29 UTC
bc85523 Merge branch 'bk/p4-misc-usability' Miscellaneous small UX improvements on "git-p4". * bk/p4-misc-usability: git-p4: show detailed help when parsing options fail git-p4: yes/no prompts should sanitize user text 02 January 2020, 20:38:29 UTC
763a59e merge-recursive: remove unnecessary oid_eq function Back when merge-recursive was first introduced in commit 6d297f8137 (Status update on merge-recursive in C, 2006-07-08), it created a sha_eq() function. This function pre-dated the introduction of hashcmp() to cache.h by about a month, but was switched over to using hashcmp() as part of commit 9047ebbc22 (Split out merge_recursive() to merge-recursive.c, 2008-08-12). In commit b4da9d62f9 (merge-recursive: convert leaf functions to use struct object_id, 2016-06-24), sha_eq() was renamed to oid_eq() and its hashcmp() call was switched to oideq(). oid_eq() is basically just a wrapper around oideq() that has some extra checks to protect against NULL arguments or to allow short-circuiting if one of the arguments is NULL. I don't know if any caller ever tried to call with NULL arguments, but certainly none do now which means the extra checks serve no purpose. (Also, if these checks were genuinely useful, then they probably should be added to the main oideq() so all callers could benefit from them.) Reduce the cognitive overhead of having both oid_eq() and oideq(), by getting rid of merge-recursive's special oid_eq() wrapper. Signed-off-by: Elijah Newren <newren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 02 January 2020, 18:35:24 UTC
4414358 sparse-checkout: use extern for global variables When the core.sparseCheckoutCone config setting was added in 879321eb0b ("sparse-checkout: add 'cone' mode" 2019-11-21), the variables storing the config values for core.sparseCheckout and core.sparseCheckoutCone were rearranged in cache.h, but in doing so the "extern" keyword was dropped. While we are tending to drop the "extern" keyword for function declarations, it is still necessary for global variables used across multiple *.c files. The impact of not having the extern keyword may be unpredictable. Signed-off-by: Derrick Stolee <dstolee@microsoft.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 02 January 2020, 18:18:42 UTC
d6a6263 Merge branch 'translation_191231' of github.com:l10n-tw/git-po into git-po-master * 'translation_191231' of github.com:l10n-tw/git-po: l10n: zh_TW.po: update translation for v2.25.0 round 1 01 January 2020, 03:15:05 UTC
13185fd l10n: zh_TW.po: update translation for v2.25.0 round 1 Signed-off-by: pan93412 <pan93412@gmail.com> 31 December 2019, 13:17:41 UTC
786f4d2 git-gui: allow opening currently selected file in default app Many times there's the need to quickly open a source file (the one you're looking at in Git GUI) in the predefined text editor / IDE. Of course, the file can be searched for in your preferred file manager or directly in the text editor, but having the option to directly open the current file from Git GUI would be just faster. This change enables just that by: - clicking the diff header path (which is now highlighted as a hyperlink) - or diff header path context menu -> Open Note: executable files will be run and not opened for editing. Signed-off-by: Zoli Szabó <zoli.szabo@gmail.com> Signed-off-by: Pratyush Yadav <me@yadavpratyush.com> 30 December 2019, 19:37:53 UTC
4fd683b sparse-checkout: document interactions with submodules Using 'git submodule (init|deinit)' a user can select a subset of submodules to populate. This behaves very similar to the sparse-checkout feature, but those directories contain their own .git directory including an object database and ref space. To have the sparse-checkout file also determine if those files should exist would easily cause problems. Therefore, keeping these features independent in this way is the best way forward. Also create a test that demonstrates this behavior to make sure it doesn't change as the sparse-checkout feature evolves. Reported-by: Junio C Hamano <gitster@pobox.com> Signed-off-by: Derrick Stolee <dstolee@microsoft.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 30 December 2019, 17:07:20 UTC
de11951 sparse-checkout: list directories in cone mode When core.sparseCheckoutCone is enabled, the 'git sparse-checkout set' command takes a list of directories as input, then creates an ordered list of sparse-checkout patterns such that those directories are recursively included and all sibling entries along the parent directories are also included. Listing the patterns is less user-friendly than the directories themselves. In cone mode, and as long as the patterns match the expected cone-mode pattern types, change the output of 'git sparse-checkout list' to only show the directories that created the patterns. With this change, the following piped commands would not change the working directory: git sparse-checkout list | git sparse-checkout set --stdin The only time this would not work is if core.sparseCheckoutCone is true, but the sparse-checkout file contains patterns that do not match the expected pattern types for cone mode. Signed-off-by: Derrick Stolee <dstolee@microsoft.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 30 December 2019, 17:07:18 UTC
0d3ce94 l10n: it.po: update the Italian translation for Git 2.25.0 Signed-off-by: Alessandro Menti <alessandro.menti@alessandromenti.it> 30 December 2019, 08:48:44 UTC
578c793 l10n: git.pot: v2.25.0 round 1 (119 new, 13 removed) Generate po/git.pot from v2.25.0-rc0 for git v2.25.0 l10n round 1. Signed-off-by: Jiang Xin <worldhello.net@gmail.com> 30 December 2019, 00:52:42 UTC
173fff6 Merge tag 'v2.25.0-rc0' into git-po-master Git 2.25-rc0 * tag 'v2.25.0-rc0': (531 commits) Git 2.25-rc0 sparse-checkout: improve OS ls compatibility dir.c: use st_add3() for allocation size dir: consolidate similar code in treat_directory() dir: synchronize treat_leading_path() and read_directory_recursive() dir: fix checks on common prefix directory t4015: improve coverage of function context test commit: forbid --pathspec-from-file --all t3434: mark successful test as such notes.h: fix typos in comment t6030: don't create unused file t5580: don't create unused file t3501: don't create unused file bisect--helper: convert `*_warning` char pointers to char arrays. The sixth batch fix-typo: consecutive-word duplications Makefile: drop GEN_HDRS built-in add -p: show helpful hint when nothing can be staged built-in add -p: only show the applicable parts of the help text built-in add -p: implement the 'q' ("quit") command ... 30 December 2019, 00:47:27 UTC
20a67e8 t3008: find test-tool through path lookup Do not use $GIT_BUILD_DIR without quotes; it may contain spaces and be split into fields. But it is not necessary to access test-tool with an absolute path in the first place as it can be found via path lookup. Remove the explicit path. Signed-off-by: Johannes Sixt <j6t@kdbg.org> Signed-off-by: Junio C Hamano <gitster@pobox.com> 27 December 2019, 22:15:01 UTC
9e341f6 l10n: Update Catalan translation Signed-off-by: Jordi Mas <jmas@softcatala.org> 27 December 2019, 17:23:20 UTC
4e61b22 packfile: replace lseek+read with pread We already have pread emulation for portability, so there's there's no reason to make two syscalls where one suffices. Furthermore, readers of the packfile will be using mmap (or pread to emulate mmap), anyways, so the file description offset does not matter in this case. Signed-off-by: Eric Wong <e@80x24.org> Signed-off-by: Junio C Hamano <gitster@pobox.com> 26 December 2019, 19:57:46 UTC
ace0f86 doc: log, gitk: line-log arguments must exist in starting revision The line number, regex or offset parameters <start> and <end> in `git log -L <start>,<end>:<file>`, or the function name regex in `git log -L :<funcname>:<file>` must exist in the starting revision, or else the command exits with a fatal error. This is not obvious in the documentation, so add a note to that effect. Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 26 December 2019, 19:00:15 UTC
2be4586 doc: log, gitk: document accepted line-log diff formats Currently the line-log functionality (git log -L) only supports displaying patch output (`-p | --patch`, its default behavior) and suppressing it (`-s | --no-patch`). A check was added in the code to that effect in 5314efaea (line-log: detect unsupported formats, 2019-03-10) but the documentation was not updated. Explicitly mention that `-L` implies `-p`, that patch output can be suppressed using `-s`, and that all other diff formats are not allowed. Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 26 December 2019, 19:00:13 UTC
280738c packfile: remove redundant fcntl F_GETFD/F_SETFD git_open sets close-on-exec since cd66ada06588f797 ("sha1_file: open window into packfiles with O_CLOEXEC"). There's no reason to keep using fcntl to set the close-on-exec flag, anymore. Signed-off-by: Eric Wong <e@80x24.org> Signed-off-by: Junio C Hamano <gitster@pobox.com> 26 December 2019, 18:09:35 UTC
0a76bd7 mailmap: mask accentless variant for Công Danh Signed-off-by: Junio C Hamano <gitster@pobox.com> 26 December 2019, 17:53:09 UTC
99c33be Git 2.25-rc0 Signed-off-by: Junio C Hamano <gitster@pobox.com> 25 December 2019, 19:22:02 UTC
d2189a7 Merge branch 'en/fill-directory-fixes' Assorted fixes to the directory traversal API. * en/fill-directory-fixes: dir.c: use st_add3() for allocation size dir: consolidate similar code in treat_directory() dir: synchronize treat_leading_path() and read_directory_recursive() dir: fix checks on common prefix directory dir: break part of read_directory_recursive() out for reuse dir: exit before wildcard fall-through if there is no wildcard dir: remove stray quote character in comment Revert "dir.c: make 'git-status --ignored' work within leading directories" t3011: demonstrate directory traversal failures 25 December 2019, 19:22:02 UTC
8be0a42 Merge branch 'rs/test-cleanup' Test cleanup. * rs/test-cleanup: t6030: don't create unused file t5580: don't create unused file t3501: don't create unused file t7004: don't create unused file t4256: don't create unused file 25 December 2019, 19:22:01 UTC
65099bd Merge branch 'mr/bisect-save-pointer-to-const-string' Code cleanup. * mr/bisect-save-pointer-to-const-string: bisect--helper: convert `*_warning` char pointers to char arrays. 25 December 2019, 19:22:01 UTC
c0c6a74 Merge branch 'rs/xdiff-ignore-ws-w-func-context' Extend test coverage for a recent fix. * rs/xdiff-ignore-ws-w-func-context: t4015: improve coverage of function context test 25 December 2019, 19:22:01 UTC
45b96a6 Merge branch 'js/add-p-in-c' The effort to move "git-add--interactive" to C continues. * js/add-p-in-c: built-in add -p: show helpful hint when nothing can be staged built-in add -p: only show the applicable parts of the help text built-in add -p: implement the 'q' ("quit") command built-in add -p: implement the '/' ("search regex") command built-in add -p: implement the 'g' ("goto") command built-in add -p: implement hunk editing strbuf: add a helper function to call the editor "on an strbuf" built-in add -p: coalesce hunks after splitting them built-in add -p: implement the hunk splitting feature built-in add -p: show different prompts for mode changes and deletions built-in app -p: allow selecting a mode change as a "hunk" built-in add -p: handle deleted empty files built-in add -p: support multi-file diffs built-in add -p: offer a helpful error message when hunk navigation failed built-in add -p: color the prompt and the help text built-in add -p: adjust hunk headers as needed built-in add -p: show colored hunks by default built-in add -i: wire up the new C code for the `patch` command built-in add -i: start implementing the `patch` functionality in C 25 December 2019, 19:22:01 UTC
ccc292e Merge branch 'jc/drop-gen-hdrs' Code cleanup. * jc/drop-gen-hdrs: Makefile: drop GEN_HDRS 25 December 2019, 19:22:00 UTC
dfee504 Merge branch 'ja/doc-markup-cleanup' Doc cleanup. * ja/doc-markup-cleanup: doc: indent multi-line items in list doc: remove non pure ASCII characters 25 December 2019, 19:22:00 UTC
87cbb1c Merge branch 'rs/ref-read-cleanup' Code cleanup. * rs/ref-read-cleanup: remote: pass NULL to read_ref_full() because object ID is not needed refs: pass NULL to refs_read_ref_full() because object ID is not needed 25 December 2019, 19:22:00 UTC
20aa6d8 Merge branch 'rb/p4-lfs' "git p4" used to ignore lfs.storage configuration variable, which has been corrected. * rb/p4-lfs: git-p4: honor lfs.storage configuration variable 25 December 2019, 19:22:00 UTC
fcd5b55 Merge branch 'pb/submodule-doc-xref' Doc update. * pb/submodule-doc-xref: gitmodules: link to gitsubmodules guide 25 December 2019, 19:21:59 UTC
4bfc9cc Merge branch 'mr/bisect-use-after-free' Use-after-free fix. * mr/bisect-use-after-free: bisect--helper: avoid use-after-free 25 December 2019, 19:21:59 UTC
ba6b662 Merge branch 'ln/userdiff-elixir' Hotfix. * ln/userdiff-elixir: userdiff: remove empty subexpression from elixir regex 25 December 2019, 19:21:59 UTC
bd72a08 Merge branch 'ds/sparse-cone' Management of sparsely checked-out working tree has gained a dedicated "sparse-checkout" command. * ds/sparse-cone: (21 commits) sparse-checkout: improve OS ls compatibility sparse-checkout: respect core.ignoreCase in cone mode sparse-checkout: check for dirty status sparse-checkout: update working directory in-process for 'init' sparse-checkout: cone mode should not interact with .gitignore sparse-checkout: write using lockfile sparse-checkout: use in-process update for disable subcommand sparse-checkout: update working directory in-process sparse-checkout: sanitize for nested folders unpack-trees: add progress to clear_ce_flags() unpack-trees: hash less in cone mode sparse-checkout: init and set in cone mode sparse-checkout: use hashmaps for cone patterns sparse-checkout: add 'cone' mode trace2: add region in clear_ce_flags sparse-checkout: create 'disable' subcommand sparse-checkout: add '--stdin' option to set subcommand sparse-checkout: 'set' subcommand clone: add --sparse mode sparse-checkout: create 'init' subcommand ... 25 December 2019, 19:21:58 UTC
f3c520e Merge branch 'sg/name-rev-wo-recursion' Redo "git name-rev" to avoid recursive calls. * sg/name-rev-wo-recursion: name-rev: cleanup name_ref() name-rev: eliminate recursion in name_rev() name-rev: use 'name->tip_name' instead of 'tip_name' name-rev: drop name_rev()'s 'generation' and 'distance' parameters name-rev: restructure creating/updating 'struct rev_name' instances name-rev: restructure parsing commits and applying date cutoff name-rev: pull out deref handling from the recursion name-rev: extract creating/updating a 'struct name_rev' into a helper t6120: add a test to cover inner conditions in 'git name-rev's name_rev() name-rev: use sizeof(*ptr) instead of sizeof(type) in allocation name-rev: avoid unnecessary cast in name_ref() name-rev: use strbuf_strip_suffix() in get_rev_name() t6120-describe: modernize the 'check_describe' helper t6120-describe: correct test repo history graph in comment 25 December 2019, 19:21:58 UTC
6514ad4 Merge branch 'ra/t5150-depends-on-perl' Some Porcelain commands are written in Perl, and tests on them are expected not to work when the platform lacks a working perl. * ra/t5150-depends-on-perl: t5150: skip request-pull test if Perl is disabled 25 December 2019, 19:21:58 UTC
17066be Merge branch 'dl/format-patch-notes-config-fixup' "git format-patch" can take a set of configured format.notes values to specify which notes refs to use in the log message part of the output. The behaviour of this was not consistent with multiple --notes command line options, which has been corrected. * dl/format-patch-notes-config-fixup: notes.h: fix typos in comment notes: break set_display_notes() into smaller functions config/format.txt: clarify behavior of multiple format.notes format-patch: move git_config() before repo_init_revisions() format-patch: use --notes behavior for format.notes notes: extract logic into set_display_notes() notes: create init_display_notes() helper notes: rename to load_display_notes() 25 December 2019, 19:21:58 UTC
135365d Merge branch 'am/pathspec-f-f-checkout' A few more commands learned the "--pathspec-from-file" command line option. * am/pathspec-f-f-checkout: checkout, restore: support the --pathspec-from-file option doc: restore: synchronize <pathspec> description doc: checkout: synchronize <pathspec> description doc: checkout: fix broken text reference doc: checkout: remove duplicate synopsis add: support the --pathspec-from-file option cmd_add: prepare for next patch 25 December 2019, 19:21:57 UTC
ff0cb70 Merge branch 'am/pathspec-from-file' An earlier series to teach "--pathspec-from-file" to "git commit" forgot to make the option incompatible with "--all", which has been corrected. * am/pathspec-from-file: commit: forbid --pathspec-from-file --all 25 December 2019, 19:21:57 UTC
4dc42c6 mingw: refuse paths containing reserved names There are a couple of reserved names that cannot be file names on Windows, such as `AUX`, `NUL`, etc. For an almost complete list, see https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file If one would try to create a directory named `NUL`, it would actually "succeed", i.e. the call would return success, but nothing would be created. Worse, even adding a file extension to the reserved name does not make it a valid file name. To understand the rationale behind that behavior, see https://devblogs.microsoft.com/oldnewthing/20031022-00/?p=42073 Let's just disallow them all. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> 22 December 2019, 00:09:07 UTC
98d9b23 mingw: short-circuit the conversion of `/dev/null` to UTF-16 In the next commit, we want to disallow accessing any path that contains any segment that is equivalent to `NUL`. In particular, we want to disallow accessing `NUL` (e.g. to prevent any repository from being checked out that contains a file called `NUL`, as that is not a valid file name on Windows). However, there are legitimate use cases within Git itself to write to the Null device. As Git is really a Linux project, it does not abstract that idea, though, but instead uses `/dev/null` to describe this intention. So let's side-step the validation _specifically_ in the case that we want to write to (or read from) `/dev/null`, via a dedicated short-cut in the code that skips the call to `validate_win32_path()`. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> 22 December 2019, 00:09:06 UTC
761e3d2 sparse-checkout: improve OS ls compatibility On FreeBSD, when executed by root ls enables the '-A' option: -A Include directory entries whose names begin with a dot (`.') except for . and ... Automatically set for the super-user unless -I is specified. As a result the .git directory appeared in the output when run as root. Simulate no-dotfile ls behaviour using a shell glob. Helped-by: Eric Wong <e@80x24.org> Helped-by: Junio C Hamano <gitster@pobox.com> Helped-by: Eric Sunshine <sunshine@sunshineco.com> Signed-off-by: Ed Maste <emaste@FreeBSD.org> Acked-by: Derrick Stolee <dstolee@microsoft.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 20 December 2019, 20:47:08 UTC
b5a9d7a CI: add FreeBSD CI support via Cirrus-CI Currently testing on FreeBSD 12.1. Signed-off-by: Ed Maste <emaste@FreeBSD.org> Signed-off-by: Junio C Hamano <gitster@pobox.com> 20 December 2019, 20:09:12 UTC
4fe7e43 rebase: fix saving of --signoff state for am-based rebases This was an error introduced in the conversion from shell in commit 21853626eac5 ("built-in rebase: call `git am` directly", 2019-01-18), which was noticed by a random browsing of the code. Signed-off-by: Elijah Newren <newren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 20 December 2019, 19:29:49 UTC
6836d2f dir.c: use st_add3() for allocation size When preparing a manufactured dirent instance, we add a length of path to the size of struct to decide how many bytes to allocate. Make sure this addition does not wrap-around to cause us underallocate. Suggested-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> 20 December 2019, 17:55:53 UTC
c847dfa dir: consolidate similar code in treat_directory() Both the DIR_SKIP_NESTED_GIT and DIR_NO_GITLINKS cases were checking for whether a path was actually a nonbare repository. That code could be shared, with just the result of how to act differing between the two cases. Signed-off-by: Elijah Newren <newren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 19 December 2019, 21:45:47 UTC
777b420 dir: synchronize treat_leading_path() and read_directory_recursive() Our optimization to avoid calling into read_directory_recursive() when all pathspecs have a common leading directory mean that we need to match the logic that read_directory_recursive() would use if we had just called it from the root. Since it does more than call treat_path() we need to copy that same logic. Alternatively, we could try to change treat_path to return path_recurse for an untracked directory under the given special circumstances that this logic checks for, but a simple switch results in many test failures such as 'git clean -d' not wiping out untracked but empty directories. To work around that, we'd need the caller of treat_path to check for path_recurse and sometimes special case it into path_untracked. In other words, we'd still have extra logic in both places. Needing to duplicate logic like this means it is guaranteed someone will eventually need to make further changes and forget to update both locations. It is tempting to just nuke the leading_directory special casing to avoid such bugs and simplify the code, but unpack_trees' verify_clean_subdirectory() also calls read_directory() and does so with a non-empty leading path, so I'm hesitant to try to restructure further. Add obnoxious warnings to treat_leading_path() and read_directory_recursive() to try to warn people of such problems. Signed-off-by: Elijah Newren <newren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 19 December 2019, 21:45:47 UTC
b9670c1 dir: fix checks on common prefix directory Many years ago, the directory traversing logic had an optimization that would always recurse into any directory that was a common prefix of all the pathspecs without walking the leading directories to get down to the desired directory. Thus, git ls-files -o .git/ # case A would notice that .git/ was a common prefix of all pathspecs (since it is the only pathspec listed), and then traverse into it and start showing unknown files under that directory. Unfortunately, .git/ is not a directory we should be traversing into, which made this optimization problematic. This also affected cases like git ls-files -o --exclude-standard t/ # case B where t/ was in the .gitignore file and thus isn't interesting and shouldn't be recursed into. It also affected cases like git ls-files -o --directory untracked_dir/ # case C where untracked_dir/ is indeed untracked and thus interesting, but the --directory flag means we only want to show the directory itself, not recurse into it and start listing untracked files below it. The case B class of bugs were noted and fixed in commits 16e2cfa90993 ("read_directory(): further split treat_path()", 2010-01-08) and 48ffef966c76 ("ls-files: fix overeager pathspec optimization", 2010-01-08), with the idea being that we first wanted to check whether the common prefix was interesting. The former patch noted that treat_path() couldn't be used when checking the common prefix because treat_path() requires a dir_entry() and we haven't read any directories at the point we are checking the common prefix. So, that patch split treat_one_path() out of treat_path(). The latter patch then created a new treat_leading_path() which duplicated by hand the bits of treat_path() that couldn't be broken out and then called treat_one_path() for the remainder. There were three problems with this approach: * The duplicated logic in treat_leading_path() accidentally missed the check for special paths (such as is_dot_or_dotdot and matching ".git"), causing case A types of bugs to continue to be an issue. * The treat_leading_path() logic assumed we should traverse into anything where path_treatment was not path_none, i.e. it perpetuated class C types of bugs. * It meant we had split logic that needed to kept in sync, running the risk that people introduced new inconsistencies (such as in commit be8a84c52669, which we reverted earlier in this series, or in commit df5bcdf83ae which we'll fix in a subsequent commit) Fix most these problems by making treat_leading_path() not only loop over each leading path component, but calling treat_path() directly on each. To do so, we have to create a synthetic dir_entry, but that only takes a few lines. Then, pay attention to the path_treatment result we get from treat_path() and don't treat path_excluded, path_untracked, and path_recurse all the same as path_recurse. This leaves one remaining problem, the new inconsistency from commit df5bcdf83ae. That will be addressed in a subsequent commit. Signed-off-by: Elijah Newren <newren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 19 December 2019, 21:45:47 UTC
23cbe42 Merge branch 'py/console-close-esc' Allow closing console window with Escape once the command is completed. * py/console-close-esc: git-gui: allow closing console window with Escape 19 December 2019, 19:54:05 UTC
124a895 t4015: improve coverage of function context test Add a test that includes an actual function line in the test file to check if context is expanded to include the whole function, and add an ignored change before function context to check if that one stays hidden while the originally ignored change within function context is shown. This differs from the existing test, which is concerned with the case where there is no function line at all in the file (and we might look past the beginning of the file). Helped-by: Jeff King <peff@peff.net> Signed-off-by: René Scharfe <l.s.r@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> 19 December 2019, 18:35:21 UTC
509efef commit: forbid --pathspec-from-file --all I forgot this in my previous patch `--pathspec-from-file` for `git commit` [1]. When both `--pathspec-from-file` and `--all` were specified, `--all` took precedence and `--pathspec-from-file` was ignored. Before `--pathspec-from-file` was implemented, this case was prevented by this check in `parse_and_validate_options()` : die(_("paths '%s ...' with -a does not make sense"), argv[0]); It is unfortunate that these two cases are disconnected. This came as result of how the code was laid out before my patches, where `pathspec` is parsed outside of `parse_and_validate_options()`. This branch is already full of refactoring patches and I did not dare to go for another one. Fix by mirroring `die()` for `--pathspec-from-file` as well. [1] Commit e440fc58 ("commit: support the --pathspec-from-file option" 2019-11-19) Reported-by: Phillip Wood <phillip.wood@dunelm.org.uk> Signed-off-by: Alexandr Miloslavskiy <alexandr.miloslavskiy@syntevo.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 18 December 2019, 22:14:14 UTC
12029dc t3434: mark successful test as such t3434.3 was fixed by commit 917d0d6234be ("Merge branch 'js/rebase-r-safer-label'", 2019-12-05). t3434 did not exist in js/rebase-r-safer-label, so could not have marked the test as fixed, and it was probably not noticed that the merge fixed this test. Mark it as fixed now. Signed-off-by: Elijah Newren <newren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 18 December 2019, 21:06:14 UTC
e0f9095 notes.h: fix typos in comment In 1d7297513d (notes: break set_display_notes() into smaller functions, 2019-12-11), we introduced a comment which had a couple of typos. In the first typo, we referenced 'enable_default_display_notes' instead of 'enable_ref_display_notes'. In the second typo, we wrote "is a points to" instead of "is a pointer to". Correct both of these typos. Reported-by: Eric Sunshine <sunshine@sunshineco.com> Signed-off-by: Denton Liu <liu.denton@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 18 December 2019, 20:35:35 UTC
675ef6b t6030: don't create unused file my_bisect_log3.txt was added by c9c4e2d5a2 (bisect: only check merge bases when needed, 2008-08-22), but hasn't been used then and since. Get rid of it. Signed-off-by: René Scharfe <l.s.r@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> 18 December 2019, 20:32:24 UTC
back to top