- 29 3月, 2013 2 次提交
-
-
由 Junio C Hamano 提交于
The function takes two counted strings (<basename, basenamelen> and <pattern, patternlen>) as parameters, together with prefix (the length of the prefix in pattern that is to be matched literally without globbing against the basename) and EXC_* flags that tells it how to match the pattern against the basename. However, it did not pay attention to the length of these counted strings. Update them to do the following: * When the entire pattern is to be matched literally, the pattern matches the basename only when the lengths of them are the same, and they match up to that length. * When the pattern is "*" followed by a string to be matched literally, make sure that the basenamelen is equal or longer than the "literal" part of the pattern, and the tail of the basename string matches that literal part. * Otherwise, use the new fnmatch_icase_mem helper to make sure we only lookmake sure we use only look at the counted part of the strings. Because these counted strings are full strings most of the time, we check for termination to avoid unnecessary allocation. Signed-off-by: NJunio C Hamano <gitster@pobox.com> Signed-off-by: NJeff King <peff@peff.net> Signed-off-by: NJunio C Hamano <gitster@pobox.com>
-
由 Junio C Hamano 提交于
The function is given a string that ends with a slash to signal that the path is a directory to make sure that a pattern that ends with a slash (i.e. MUSTBEDIR) can tell directories and non-directories apart. However, the pattern itself (pat->pattern and pat->patternlen) that came from such a MUSTBEDIR pattern is represented as a string that ends with a slash, but patternlen does not count that trailing slash. A MUSTBEDIR pattern "element/" is represented as a counted string <"element/", 7> and this must match match pathname "element/". Because match_basename() and match_pathname() want to see pathname "element" to match against the pattern <"element/", 7>, reduce the length of the path to exclude the trailing slash when calling these functions. Signed-off-by: NJunio C Hamano <gitster@pobox.com> Signed-off-by: NJeff King <peff@peff.net> Signed-off-by: NJunio C Hamano <gitster@pobox.com>
-
- 27 3月, 2013 1 次提交
-
-
由 Junio C Hamano 提交于
The function takes two strings (pathname and basename) as if they are independent strings, but in reality, the latter is always pointing into a substring in the former. Clarify this relationship by expressing the latter as an offset into the former. Signed-off-by: NJunio C Hamano <gitster@pobox.com>
-
- 17 1月, 2013 1 次提交
-
-
由 Duy Nguyen 提交于
find_basename() is only used inside collect_all_attrs(), called once in prepare_attr_stack, then again after prepare_attr_stack() returns. Both calls return exact same value. Reorder the code to do the same task once. Also avoid strlen() because we knows the length after finding basename. Signed-off-by: NNguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: NJunio C Hamano <gitster@pobox.com>
-
- 16 1月, 2013 1 次提交
-
-
由 Nguyễn Thái Ngọc Duy 提交于
94bc671a (Add directory pattern matching to attributes - 2012-12-08) uses find_basename() to calculate the length of directory part in prepare_attr_stack. This function expects the directory without the trailing slash (as "origin" field in match_attr struct is without the trailing slash). find_basename() includes the trailing slash and confuses push/pop algorithm. Consider path = "abc/def" and the push down code: while (1) { len = strlen(attr_stack->origin); if (dirlen <= len) break; cp = memchr(path + len + 1, '/', dirlen - len - 1); if (!cp) cp = path + dirlen; dirlen is 4, not 3, without this patch. So when attr_stack->origin is "abc", it'll miss the exit condition because 4 <= 3 is wrong. It'll then try to push "abc/" down the attr stack (because "cp" would be NULL). So we have both "abc" and "abc/" in the stack. Next time when "abc/ghi" is checked, "abc/" is popped out because of the off-by-one dirlen, only to be pushed back in again by the above code. This repeats for all files in the same directory. Which means at least one failed open syscall per file, or more if .gitattributes exists. This is the perf result with 10 runs on git.git: Test 94bc671a^ 94bc671a HEAD ---------------------------------------------------------------------------------------------------------- 7810.1: grep worktree, cheap regex 0.02(0.01+0.04) 0.05(0.03+0.05) +150.0% 0.02(0.01+0.04) +0.0% 7810.2: grep worktree, expensive regex 0.25(0.94+0.01) 0.26(0.94+0.02) +4.0% 0.25(0.93+0.02) +0.0% 7810.3: grep --cached, cheap regex 0.11(0.10+0.00) 0.12(0.10+0.02) +9.1% 0.10(0.10+0.00) -9.1% 7810.4: grep --cached, expensive regex 0.61(0.60+0.01) 0.62(0.61+0.01) +1.6% 0.61(0.60+0.00) +0.0% Reported-by: NRoss Lagerwall <rosslagerwall@gmail.com> Signed-off-by: NNguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: NJunio C Hamano <gitster@pobox.com>
-
- 18 12月, 2012 1 次提交
-
-
由 Jean-Noël AVILA 提交于
The manpage of gitattributes says: "The rules how the pattern matches paths are the same as in .gitignore files" and the gitignore pattern matching has a pattern ending with / for directory matching. This rule is specifically relevant for the 'export-ignore' rule used for git archive. Signed-off-by: NJean-Noel Avila <jn.avila@free.fr> Signed-off-by: NJunio C Hamano <gitster@pobox.com>
-
- 13 12月, 2012 3 次提交
-
-
由 Junio C Hamano 提交于
We earlier removed a link to list of contributors that pointed to a defunct page; let's use a working one from Ohloh.net to replace it instead. Signed-off-by: NJunio C Hamano <gitster@pobox.com>
-
由 Junio C Hamano 提交于
* so/prompt-command: git-prompt.sh: update PROMPT_COMMAND documentation
-
由 Junio C Hamano 提交于
The description of __git_ps1 function operating in two-arg mode was not very clear. It said "set PROMPT_COMMAND=__git_ps1" which is not the right usage for this mode, followed by "To customize the prompt, do this", giving a false impression that those who do not want to customize it can get away with no-arg form, which was incorrect. Make it clear that this mode always takes two arguments, pre and post, with an example. The straight-forward one should be listed as the primary usage, and the confusing one should be an alternate for advanced users. Swap the order of these two. Acked-by: NSimon Oosthoek <s.oosthoek@xs4all.nl> Signed-off-by: NJunio C Hamano <gitster@pobox.com>
-
- 12 12月, 2012 5 次提交
-
-
由 Marc Khouzam 提交于
For bash completion, the option '-o bashdefault' is used to indicate that when no other choices are available, file completion should be performed. Since this option is not available in tcsh, no file completion is ever performed. Therefore, commands like 'git add ', 'git send-email ', etc, require the user to manually type out the file name. This can be quite annoying. To improve the user experience we try to simulate file completion directly in this script (although not perfectly). The known issues with the file completion simulation are: - Possible completions are shown with their directory prefix. - Completions containing shell variables are not handled. - Completions with ~ as the first character are not handled. Signed-off-by: NMarc Khouzam <marc.khouzam@ericsson.com> Signed-off-by: NJunio C Hamano <gitster@pobox.com>
-
由 Junio C Hamano 提交于
MinGW has a workaround when rmdir unnecessarily fails to retry with a prompt, but the logic was kicking in when the rmdir failed with ENOTEMPTY, i.e. was expected to fail and there is no point retrying. * ef/mingw-rmdir: mingw_rmdir: do not prompt for retry when non-empty
-
由 Junio C Hamano 提交于
Update getpass() emulation for MinGW. * ef/mingw-tty-getpass: mingw: get rid of getpass implementation mingw: reuse tty-version of git_terminal_prompt compat/terminal: separate input and output handles compat/terminal: factor out echo-disabling mingw: make fgetc raise SIGINT if apropriate mingw: correct exit-code for SIGALRM's SIG_DFL
-
由 Junio C Hamano 提交于
* maint: git-prompt: Document GIT_PS1_DESCRIBE_STYLE
-
由 Anders Kaseorg 提交于
GIT_PS1_DESCRIBE_STYLE was introduced in v1.6.3.2~35. Document it in the header comments. Signed-off-by: NAnders Kaseorg <andersk@mit.edu> Signed-off-by: NJunio C Hamano <gitster@pobox.com>
-
- 11 12月, 2012 5 次提交
-
-
由 Junio C Hamano 提交于
* maint: Git 1.8.0.2 Documentation/git-stash.txt: add a missing verb git(1): remove a defunct link to "list of authors" Signed-off-by: NJunio C Hamano <gitster@pobox.com>
-
由 Junio C Hamano 提交于
Signed-off-by: NJunio C Hamano <gitster@pobox.com>
-
由 Stefano Lattarini 提交于
Consistently use a single space before and after the "=" (or ":=", "+=", etc.) in assignments to make macros. Granted, this was not a big deal, but I did find the needless inconsistency quite distracting. Signed-off-by: NStefano Lattarini <stefano.lattarini@gmail.com> Signed-off-by: NJunio C Hamano <gitster@pobox.com>
-
由 Erik Faye-Lund 提交于
in ab1a11be ("mingw_rmdir: set errno=ENOTEMPTY when appropriate"), a check was added to prevent us from retrying to delete a directory that is both in use and non-empty. However, this logic was slightly flawed; since we didn't return immediately, we end up falling out of the retry-loop, but right into the prompting-loop. Fix this by setting errno, and guarding the prompting-loop with an errno-check. Signed-off-by: NErik Faye-Lund <kusmabite@gmail.com> Signed-off-by: NJunio C Hamano <gitster@pobox.com>
-
由 Sébastien Loriot 提交于
Signed-off-by: NSébastien Loriot <sloriot.ml@gmail.com> Signed-off-by: NJunio C Hamano <gitster@pobox.com>
-
- 09 12月, 2012 1 次提交
-
-
由 Junio C Hamano 提交于
The linked page has not been showing the promised "more complete list" for more than 6 months by now, and nobody has resurrected the list there nor elsewhere since then. Signed-off-by: NJunio C Hamano <gitster@pobox.com>
-
- 08 12月, 2012 9 次提交
-
-
由 Junio C Hamano 提交于
Signed-off-by: NJunio C Hamano <gitster@pobox.com>
-
由 Junio C Hamano 提交于
The line that happens to begin with indent followed by "3. " was interpreted as if it was an enumerated list; just wrap the lines differently to work it around for now. Signed-off-by: NJunio C Hamano <gitster@pobox.com>
-
由 Junio C Hamano 提交于
* maint: Update draft release notes to 1.8.0.2
-
由 Junio C Hamano 提交于
Signed-off-by: NJunio C Hamano <gitster@pobox.com>
-
由 Junio C Hamano 提交于
* jc/doc-push-satellite: Documentation/git-push.txt: clarify the "push from satellite" workflow
-
由 Junio C Hamano 提交于
Various codepaths checked if two encoding names are the same using ad-hoc code and some of them ended up asking iconv() to convert between "utf8" and "UTF-8". The former is not a valid way to spell the encoding name, but often people use it by mistake, and we equated them in some but not all codepaths. Introduce a new helper function to make these codepaths consistent. * jc/same-encoding: reencode_string(): introduce and use same_encoding()
-
由 Junio C Hamano 提交于
"git diff --stat" miscounted the total number of changed lines when binary files were involved and hidden beyond --stat-count. It also miscounted the total number of changed files when there were unmerged paths. * lt/diff-stat-show-0-lines: t4049: refocus tests diff --shortstat: do not count "unmerged" entries diff --stat: do not count "unmerged" entries diff --stat: move the "total count" logic to the last loop diff --stat: use "file" temporary variable to refer to data->files[i] diff --stat: status of unmodified pair in diff-q is not zero test: add failing tests for "diff --stat" to t4049 Fix "git diff --stat" for interesting - but empty - file changes
-
git://github.com/git-l10n/git-po由 Junio C Hamano 提交于
* 'master' of git://github.com/git-l10n/git-po: l10n: de.po: translate 22 new messages l10n: de.po: translate 825 new messages l10n: Update Swedish translation (1979t0f0u) l10n: vi.po: update to git-v1.8.0.1-347-gf94c3 l10n: Update git.pot (5 new, 1 removed messages)
-
由 Junio C Hamano 提交于
* rr/t4041-cleanup: t4041 (diff-submodule-option): modernize style t4041 (diff-submodule-option): rewrite add_file() routine t4041 (diff-submodule-option): parse digests sensibly t4041 (diff-submodule-option): don't hardcode SHA-1 in expected outputs
-
- 07 12月, 2012 1 次提交
-
-
git://github.com/ralfth/git-po-de由 Jiang Xin 提交于
* 'rt/de-l10n-updates-for-1.8.1' of git://github.com/ralfth/git-po-de: l10n: de.po: translate 22 new messages l10n: de.po: translate 825 new messages Signed-off-by: NJiang Xin <worldhello.net@gmail.com>
-
- 06 12月, 2012 2 次提交
-
-
由 Ralf Thielow 提交于
Translate 22 new messages came from git.pot updates in 9306b5b9 (l10n: Update git.pot (3 new, 6 removed messages)), fe52cd62 (l10n: Update git.pot (14 new, 3 removed messages)) and f9472e35 (l10n: Update git.pot (5 new, 1 removed messages)). Signed-off-by: NRalf Thielow <ralf.thielow@gmail.com> Reviewed-by: NMichael J Gruber <git@drmicha.warpmail.net>
-
由 Ralf Thielow 提交于
Translate 825 new messages came from git.pot update in cc76011e ("l10n: Update git.pot (825 new, 24 removed messages)"). Signed-off-by: NRalf Thielow <ralf.thielow@gmail.com> Reviewed-by: NThomas Rast <trast@student.ethz.ch> Helped-by: NMichael J Gruber <git@drmicha.warpmail.net>
-
- 05 12月, 2012 7 次提交
-
-
由 Junio C Hamano 提交于
* mm/status-push-pull-advise: document that statusHints affects git checkout
-
由 Erik Faye-Lund 提交于
There's no remaining call-sites, and as pointed out in the previous commit message, it's not quite ideal. So let's just lose it. Signed-off-by: NErik Faye-Lund <kusmabite@gmail.com> Signed-off-by: NJunio C Hamano <gitster@pobox.com>
-
由 Erik Faye-Lund 提交于
The getpass-implementation we use on Windows isn't at all ideal; it works in raw-mode (as opposed to cooked mode), and as a result does not deal correcly with deletion, arrow-keys etc. Instead, use cooked mode to read a line at the time, allowing the C run-time to process the input properly. Since we set files to be opened in binary-mode by default on Windows, introduce a FORCE_TEXT macro that expands to the "t" modifier that forces the terminal to be opened in text-mode so we do not have to deal with CRLF issues. Signed-off-by: NErik Faye-Lund <kusmabite@gmail.com> Signed-off-by: NJunio C Hamano <gitster@pobox.com>
-
由 Erik Faye-Lund 提交于
On Windows, the terminal cannot be opened in read-write mode, so we need distinct pairs for reading and writing. Since this works fine on other platforms as well, always open them in pairs. Signed-off-by: NErik Faye-Lund <kusmabite@gmail.com> Signed-off-by: NJunio C Hamano <gitster@pobox.com>
-
由 Erik Faye-Lund 提交于
By moving the echo-disabling code to a separate function, we can implement OS-specific versions of it for non-POSIX platforms. Signed-off-by: NErik Faye-Lund <kusmabite@gmail.com> Signed-off-by: NJunio C Hamano <gitster@pobox.com>
-
由 Erik Faye-Lund 提交于
Set a control-handler to prevent the process from terminating, and simulate SIGINT so it can be handled by a signal-handler as usual. Signed-off-by: NErik Faye-Lund <kusmabite@gmail.com> Signed-off-by: NJunio C Hamano <gitster@pobox.com>
-
由 Erik Faye-Lund 提交于
Make sure SIG_DFL for SIGALRM exits with 128 + SIGALRM so other processes can diagnose why it exits. While we're at it, make sure we only write to stderr if it's a terminal, and change the output to match that of Linux. Signed-off-by: NErik Faye-Lund <kusmabite@gmail.com> Signed-off-by: NJunio C Hamano <gitster@pobox.com>
-
- 04 12月, 2012 1 次提交
-
-
由 Matthieu Moy 提交于
Signed-off-by: NMatthieu Moy <Matthieu.Moy@imag.fr> Signed-off-by: NJunio C Hamano <gitster@pobox.com>
-