summaryrefslogtreecommitdiff
path: root/Functions/VCS_Info
AgeCommit message (Collapse)AuthorFilesLines
2025-04-30Merge branch 'upstream' into debianJoe Rayhawk1-11/+33
2022-12-0951144, 51146: vcs_info git: stg: Extract patch descriptionsDaniel Shahaf1-2/+2
Joint work with Peter Grayson.
2022-12-0851142: vcs_info git: Check the get-unapplied style as documentedDaniel Shahaf1-2/+6
The style was treated as "always true" rather than as "settable, false by default" in the rebase-merge and cherry-pick cases. This affects the gen-unapplied-string hook, and may also affect gen-applied-string and set-patch-format hooks if they accessed VCS_INFO_get_data_git's internal parameters directly. If this affects you, just set the style in your zshrc: . zstyle ':vcs_info:git*:*:*' get-unapplied true
2022-12-0851138: Updated StGit patch detection in vcs_infoPeter Grayson1-9/+27
The vcs_info patch detection code attempted to interrogate StGit patch stack state by inspecting .git/patches/applied and .git/patches/unapplied. As of StGit 0.15 (2009), patch stack metadata is captured in the repo's object database. And as of StGit 1.0 (2021), no stack or patch state is maintained in any files in the .git/ directory. Zsh's approach for interrogating StGit patch state is thus obsoleted. This patch updates vcs_info to determine whether StGit is initialized on a branch by looking at the appropriate git refs and uses StGit's prescribed interface for interrogating applied and unapplied patch state via the `stg series` command. This approach will work with all versions of StGit >=0.15. Signed-off-by: Peter Grayson <pete@jpgrayson.net>
2022-04-11New upstream version 5.8.1.2-testAxel Beckert18-102/+345
2022-02-2049728: vcs_info hg mq: Don't include applied patches in the unapplied patchesDaniel Shahaf1-0/+3
For instance, with 4 applied patches, 5 unapplied patches, and no guards involved, the patch-format style would indicate 9 (= 4+5) unapplied patches and 4 applied patches.
2022-02-2049727 (+ comment): vcs_info quilt: Pass the patches dir path to the ↵Daniel Shahaf4-4/+15
gen-applied-string, gen-unapplied-string, and set-patch-format hooks I use that in my gen-applied-string hook.
2022-02-20unposted: vcs_info hg mg (with get-unapplied set): Stop leaking a variable ↵Daniel Shahaf1-1/+1
to global scope
2022-02-12security/82: VCS_Info: Fix typo in hook_com[base-name_orig] assignmentMarc Cornellà1-1/+1
Tweaked per discussion in security/90, security/91 (cherry picked from commit b34d33e3b3c5ae30e8315111f07634c1e7507531)
2022-02-12security/82: VCS_Info: Fix typo in hook_com[base-name_orig] assignmentMarc Cornellà1-1/+1
Tweaked per discussion in security/90, security/91
2022-01-29unposted: vcs_info git: Teach the rebase-apply test case generator to also ↵Daniel Shahaf2-1/+12
generate rebase-merge test cases
2022-01-29unposted: vcs_info git: Add a missing guard against redefining a function.Daniel Shahaf1-0/+1
2022-01-29unposted: vcs_info git: Deconfuse $EDITORDaniel Shahaf1-2/+2
Work around <https://github.com/chrisbra/vim-zsh/issues/39>.
2022-01-29unposted: vcs_info: Add Vim modelinesDaniel Shahaf3-0/+6
... for consistency with all other vcs_info function files.
2022-01-2949723: vcs_info quilt: Use quilt-patch-dir and ${QUILT_PATCHES} even when ↵Daniel Shahaf1-21/+24
get-unapplied hasn't been set This affects the post-quilt hook. Before this patch, if no patches have been applied and get-unapplied hasn't been set, the second argument to that hook would undergo null elision. The generation of patch subjects for the gen-applied-string, gen-unapplied-string, and set-patch-format hooks was unaffected since it was guarded by [[ -n $patches ]].
2022-01-2949722: vcs_info quilt: Refactor for readability. No functional change.Daniel Shahaf1-6/+7
2022-01-27unposted: vcs_info quilt: Remove a no-op variable assignmentDaniel Shahaf1-1/+0
2022-01-2549709: vcs_info hg: Keep $HGPLAIN set for hooks if it had been set outside ↵Daniel Shahaf1-1/+0
vcs_info If someone does 'HGPLAIN=1 vcs_info', any vcs_info hooks should be called with HGPLAIN set. Declaring it 'local' broke that.
2021-04-21users/26635 (tweaked): vcs_info hg: Compute the branch name correctly when ↵Daniel Shahaf1-3/+3
get-revision is set and check-for-changes is not Tweak: Simplify an always-true condition. Review-by: Manuel Jacob
2021-03-2947561 (the git and cvs parts) (compare 44919 + 44920): vcs_info internals: ↵Aleksandr Mezin4-13/+18
cvs, git: Set ${vcs_comm[basedir]} like all other backends do. That doesn't affect anything, not even other vcs_info internals; it's just for consistency across backends.
2020-08-0947303: vcs_info hg: Fix changing the expansion of %g (hook_com[guards]) in ↵Daniel Shahaf2-4/+10
the set-patch-format hook (regression from workers/40480). To reproduce, go to a hg repository with active mq guards and configure vcs_info as follows: zstyle '*' get-unapplied true zstyle ':vcs_info:*set-patch-format*' hooks f zstyle '*' patch-format '[%g : %G]' zstyle '*' nopatch-format '[%g : %G]' zstyle '*' formats '%m' +vi-f () { hook_com[guards]+=XXX } The regression was first released in 5.3.1-test-2, over three years ago.
2020-06-2246091: Add code to Mercurial VCS backend to show topic if there is any.Manuel Jacob1-1/+10
"Topics" is an experimental concept in Mercurial that augments the current branching concept (called "named branches"). For more information, see the not always up-to-date Mercurial Wiki page https://www.mercurial-scm.org/wiki/TopicPlan.
2020-03-2845644: vcs_info git: Fix current patch's name in several cases.Daniel Shahaf1-0/+15
2020-03-2745627: vcs_info git: Under git-am(1) conflicts, pass to the ↵Daniel Shahaf1-3/+11
gen-applied-string hook information on already-applied patches. The hook already receives information about the current (topmost applied) patch and, if the get-unapplied style is set, about future (unapplied) patches. Tested in the Functions/VCS_Info/test-repo-git-rebase-apply scenario, after manually converting the rebase to a «git am». (Specifically, I ran: mkdir d git rebase --abort git format-patch rebase_from_this..HEAD -o d git checkout rebase_onto_this git am d/* .)
2020-03-2745625: vcs_info svn: Detect the "working copy format is too new" error.Daniel Shahaf1-1/+9
2020-03-2745626: vcs_info: Deduplicate calling the set-branch-format hook.Daniel Shahaf6-33/+31
2020-03-2745624: vcs_info: Set $rrn in all backends.Daniel Shahaf3-0/+4
2020-03-1545541: internal: vcs_info git: Add a test case repository for rebase-apply ↵Daniel Shahaf1-0/+49
situations
2020-03-1545539: vcs_info git: In non-interactive rebases, obtain applied patches' names.Daniel Shahaf1-5/+17
2020-03-1545540: vcs_info git: In non-interactive rebases, compute patch names for ↵Daniel Shahaf1-6/+25
unapplied patches.
2020-03-1545543: vcs_info quilt: Allow quiltcommand to be a function.Daniel Shahaf1-2/+3
Before this commit, it could only be an external command.
2020-03-1545547: vcs_info git: In interactive rebases, process gen-unapplied-string ↵Daniel Shahaf1-7/+16
arguments like gen-applied-string arguments are processed. I consider this a bugfix, since it's unexpected for -applied and -unapplied to differ about this.
2020-03-1545546: vcs_info git: In interactive rebases, properly support the full form ↵Daniel Shahaf1-2/+2
of the "exec" verb. The code before this commit happened to have done the right thing: "exec" lines were handled by the catchall forward compatibility case, which happened to have had virtually the same effect as the correct case. However, that was merely an accidental result. This patch makes the code do the right thing deliberately, rather than by accident.
2020-03-1545545: vcs_info git: In interactive rebases, ignore comment lines.Daniel Shahaf1-0/+4
2020-02-17github #48/0002: vcs_info git: properly detect bare repositoriesbrian m. carlson1-0/+4
We currently detect Git repositories by finding the top level of the working tree, and if we fail to detect it, assume that we're not in a repository. However, there's a case we don't consider: a bare repository. Let's detect if the user is in a bare repository by checking if gitdir is set, and if so, using that if there is no working tree. We now detect bare Git repositories with vcs_info, as expected.
2020-02-17github #48/0001: vcs_info git: avoid warnings in bare repositoriesbrian m. carlson1-1/+1
Git 2.25 introduced a change to how git rev-parse --show-toplevel behaves. Traditionally, it succeeded with no output if the user was in a bare repository. Now it dies, printing an error to standard error. Consequently, when the user is in a bare repository with a newer Git, vcs_info prints noisily to standard error. While this is functionally harmless, it is annoying for the shell to print messages from Git every time the prompt is printed, so let's silence the error message.
2019-12-2245114: vcs_info quilt: Improve support for svn-style patch headers.Daniel Shahaf1-7/+13
Additional lines between the |-separated header line and the actual log message, as generated by 'svn log -v' and 'svn log -g', are now supported. This change affects you if you have quilt patches with 'svn log'-style information in their headers, regardless of whether you use quilt standalone, quilt over svn, or quilt over some other VCS.
2019-12-0344960: vcs_info cvs: Fix infinite loop when /CVS exists.Daniel Shahaf1-3/+9
2019-12-0344961: vcs_info svn: Fix infinite loop when /.svn exists.Daniel Shahaf1-5/+7
2019-12-0344962: vcs_info: Document internal function and variableDaniel Shahaf2-0/+18
2019-11-2944958: vcs_info quilt: Avoid forksDaniel Shahaf1-5/+5
2019-11-2944945: vcs_info git: Optimize detection by running fewer external commands.Daniel Shahaf1-2/+1
2019-01-2744020: VCS_INFO_detect_p4: Fix infinite recursiondana1-1/+0
2018-12-1343879: vcs_info git: Fix fatal error in VCS_INFO_git_getbranch in corner caseDaniel Shahaf1-4/+6
Before this commit, the following use-case: git checkout foo^ git show foo | git am would result in a fatal error, with vcs_info_msg_N_ not set: VCS_INFO_git_getbranch:18: no such file or directory: .git/rebase-apply/onto Now they are set correctly, and HEAD's commit hash is used.
2018-10-0843620 (tweaked): vcs_info git: Reverse the order patches are passed to ↵Daniel Shahaf2-1/+4
gen-unapplied-string in. This is an incompatible change; see README for details. Tweaks (relative to posted version): tweaked README, removed scalpel (debug print).
2018-10-0843617: vcs_info git: During a non-interactive rebase of a detached head, ↵Daniel Shahaf1-1/+1
computer the %b expando correctly. Before this commit, the value of %b was the hash of the commit from the "source" side of the rebase, from .git/rebase-apply/orig-head and .git/rebase-apply/original-commit. This broke the invariant that %b expands to a git-rev-parse(1) expression resolving to what %r expands to. Use .git/rebase-apply/onto instead as, empirically, it contains the correct value.
2018-10-0843619: vcs_info git: In non-interactive rebases, always set ↵Daniel Shahaf1-10/+3
$hook_com[git_patches_applied] to a string of the form 'foo bar', never just 'foo'.
2018-10-0843618: vcs_info: Don't redefine helper functions on every execution of the ↵Daniel Shahaf4-2/+13
autoloadable outer function. This allows enabling tracing of the helper functions without fned'ing the outer function.
2018-10-0743587: vcs_info git: In 'git rebase -i', when computing subjects of ↵Daniel Shahaf1-0/+19
applied-patches, handle an edge case where the subject is not available.
2018-10-0743588: vcs_info git: Make sure applied-patches is of the form "$hash ↵Daniel Shahaf1-0/+5
$subject" --- that is, has a space and a non-empty second argument --- even with future 'git rebase -i' verbs. Use of '?' is consistent with these precedents: Backends/VCS_INFO_get_data_git:220: printf -v "git_patches_applied[$p]" "%04d ?" "$p" Backends/VCS_INFO_get_data_git:242: git_patches_applied+=("? $subject") Backends/VCS_INFO_get_data_git:244: git_patches_applied+=("?") VCS_INFO_quilt:160: applied[$i]+=" ?" VCS_INFO_quilt:168: unapplied[$i]+=" ?"