Re: [PATCH] Add userdiff patterns for Ada
On 16/09/12 15:37, Junio C Hamano wrote: > Adrian Johnson writes: > >> Add Ada xfuncname and wordRegex patterns to the list of builtin >> patterns. >> >> Signed-off-by: Adrian Johnson >> --- > > Interesting. I do not read Ada, but in this "expect" file,... > >> diff --git a/t/t4034/ada/expect b/t/t4034/ada/expect >> new file mode 100644 >> index 000..be2376e >> --- /dev/null >> +++ b/t/t4034/ada/expect >> @@ -0,0 +1,27 @@ >> +diff --git a/pre b/post >> +index d96fdd1..df21bb0 100644 >> +--- a/pre >> b/post >> +@@ -1,13 +1,13 @@ >> +Ada.Text_IO.Put_Line("Hello World!?"); >> +1 1e-10 16#FE12#E2 3.141_592 'xy' >> +ax+b ay x-b >> +ay >> +x*b ay x/b >> +ay >> +x**b >> +ay >> +x(by) >> +ax:=b >> +ay >> +x=b ay x/= b >> +ay >> +x> x>b ay x>=b >> +ay >> +x,b >> +ay >> +x=>b >> +ay >> +x..b >> +ay >> +x<>by > > I do not seem to find anything interesting after @@, which means > that xfuncname is not tested at all even though the log message > claims the patch adds some. I probably misunderstood how the tests work. I thought t4034 tested wordRegex while t4018 is for xfuncname. I based the Ada tests on the Pascal tests but changed the operators to Ada operators. I'm not really sure what else the test needs. > > Puzzled... > -- > To unsubscribe from this list: send the line "unsubscribe git" in > the body of a message to majord...@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCHv4] clone --single: limit the fetch refspec to fetched branch
After running "git clone --single", the resulting repository has the usual default "+refs/heads/*:refs/remotes/origin/*" wildcard fetch refspec installed, which means that a subsequent "git fetch" will end up grabbing all the other branches. Update the fetch refspec to cover only the singly cloned ref instead to correct this. Signed-off-by: Ralf Thielow --- Changes to v3: - use commit message from Junio's topic branch - add comment for the 'detached HEAD' case (also from Junio's topic branch) (thanks for that) - add tests for the refspec installed by the clone command builtin/clone.c | 49 t/t5709-clone-refspec.sh | 59 2 Dateien geändert, 94 Zeilen hinzugefügt(+), 14 Zeilen entfernt(-) create mode 100755 t/t5709-clone-refspec.sh diff --git a/builtin/clone.c b/builtin/clone.c index 5e8f3ba..be4c62b 100644 --- a/builtin/clone.c +++ b/builtin/clone.c @@ -755,20 +755,6 @@ int cmd_clone(int argc, const char **argv, const char *prefix) } strbuf_addf(&value, "+%s*:%s*", src_ref_prefix, branch_top.buf); - - if (option_mirror || !option_bare) { - /* Configure the remote */ - strbuf_addf(&key, "remote.%s.fetch", option_origin); - git_config_set_multivar(key.buf, value.buf, "^$", 0); - strbuf_reset(&key); - - if (option_mirror) { - strbuf_addf(&key, "remote.%s.mirror", option_origin); - git_config_set(key.buf, "true"); - strbuf_reset(&key); - } - } - strbuf_addf(&key, "remote.%s.url", option_origin); git_config_set(key.buf, repo); strbuf_reset(&key); @@ -853,6 +839,41 @@ int cmd_clone(int argc, const char **argv, const char *prefix) "refs/heads/master"); } + if (option_mirror || !option_bare) { + strbuf_reset(&value); + if (option_single_branch) { + if (option_branch) + strbuf_addf(&value, "+%s%s:%s%s", + src_ref_prefix, option_branch, + branch_top.buf, option_branch); + else if (remote_head_points_at) + strbuf_addf(&value, "+%s:%s%s", + remote_head_points_at->name, branch_top.buf, + skip_prefix(remote_head_points_at->name, "refs/heads/")); + /* +* otherwise, the next "git fetch" will +* simply fetch from HEAD without updating +* any remote tracking branch, which is what +* we want. +*/ + } else { + strbuf_addf(&value, "+%s*:%s*", src_ref_prefix, branch_top.buf); + } + /* Configure the remote */ + if (value.len) { + strbuf_reset(&key); + strbuf_addf(&key, "remote.%s.fetch", option_origin); + git_config_set_multivar(key.buf, value.buf, "^$", 0); + strbuf_reset(&key); + + if (option_mirror) { + strbuf_addf(&key, "remote.%s.mirror", option_origin); + git_config_set(key.buf, "true"); + strbuf_reset(&key); + } + } + } + if (is_local) clone_local(path, git_dir); else if (refs && complete_refs_before_fetch) diff --git a/t/t5709-clone-refspec.sh b/t/t5709-clone-refspec.sh new file mode 100755 index 000..f4c8e31 --- /dev/null +++ b/t/t5709-clone-refspec.sh @@ -0,0 +1,59 @@ +#!/bin/sh + +test_description='test refspec written by clone-command' +. ./test-lib.sh + +test_expect_success 'setup' ' + echo one >file && + git add file && + git commit -m one && + echo two >file && + git commit -a -m two && + git tag two && + echo three >file && + git commit -a -m three && + git checkout -b foo && + echo four >file && + git commit -a -m four && + git checkout master +' + +test_expect_success 'refspec contains all branches by default' ' + git clone "file://$PWD" dir_all && + echo "+refs/heads/*:refs/remotes/origin/*" > expected && + git --git-dir=dir_all/.git config --get remote.origin.fetch > actual && + test_cmp expected actual +' + +test_expect_success 'refspec contains only master with option --single-branch and remotes HEAD point to master' ' + git clone --single-branch "file://$PWD" dir_master && + echo "+refs/heads/master:refs/remotes/origin/master" > e
Backlight control broken between 3.6.0-rc1 and 3.6.0-rc4
I have a Dell XPS 13 Ultrabook laptop. Backlight control used to be broken, it works in 3.6.0-rc1, and it is broken again in 3.6.0-rc4. - Grant -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCHv2 01/12] git p4 test: remove bash-ism of combined export/assignment
On 16/09/12 07:05, Junio C Hamano wrote: Luke Diamand writes: Looks good to me, ack. Thanks; is this an ack for the entire series, or are you expecting further back-and-forth with Pete before the whole thing is ready? An ack for the whole series. I'm just going through the rest of the patches now but I don't expect to find any issues. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
RE: Unable to clone GIT project
Can anyone please help me out. -Original Message- From: git-ow...@vger.kernel.org [mailto:git-ow...@vger.kernel.org] On Behalf Of Aggarwal, Ankush Sent: Sunday, September 16, 2012 8:49 AM To: git@vger.kernel.org Subject: Unable to clone GIT project I have created a GIT repository on Linux 64 bit machine. When I tried to clone GIT repository on windows 7 machine then I am getting below error. Error: git-upload-pack: error while loading shared libraries: libiconv.so.2: cannot open shared object file: No such file or directory fatal: The remote end hung up unexpectedly anyone please help me resolve the issue. Regards, Ankush -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: Unable to clone GIT project
On Sun, Sep 16, 2012 at 03:19:25AM +, ankush_aggar...@dell.com wrote: > I have created a GIT repository on Linux 64 bit machine. > > When I tried to clone GIT repository on windows 7 machine then I am getting > below error. > > Error: > git-upload-pack: error while loading shared libraries: libiconv.so.2: cannot > open shared object file: No such file or directory > fatal: The remote end hung up unexpectedly > > anyone please help me resolve the issue. See [1] and generally search google for msysgit+libiconv.so.2 as it contains links to other approaches to working around this problem. Note that questions about technical issues with Git for Windows are better asked on the msysgit mailing list [2] or in the project bug tracker [3] (after searching both places for the relevant information). 1. http://groups.google.com/group/msysgit/msg/1c32f034869ffa93 2. http://groups.google.com/group/msysgit/ 3. https://github.com/msysgit/msysgit/issues -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH 7/8] Doc clean: add See Also links
'git clean' is controlled by gitignore, excludes, and core.excludesfile. Provide See Also links for them. Use of core.excludesfile is implied. Signed-off-by: Philip Oakley diff --git a/Documentation/git-clean.txt b/Documentation/git-clean.txt index 79fb984..9a977b7 100644 --- a/Documentation/git-clean.txt +++ b/Documentation/git-clean.txt @@ -63,6 +63,12 @@ OPTIONS Remove only files ignored by git. This may be useful to rebuild everything from scratch, but keep manually created files. +SEE ALSO + +linkgit:gitignore[5] +linkgit:gitrepository-layout[5] +The optional configuration variable `core.excludesfile` linkgit:git-config[1] + GIT --- Part of the linkgit:git[1] suite -- 1.7.8.msysgit.0 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH 5/8] Doc: separate gitignore pattern sources
Use separate bulleted paragraphs for the three different gitignore pattern sources. Signed-off-by: Philip Oakley diff --git a/Documentation/gitignore.txt b/Documentation/gitignore.txt index c1f692a..1a585e7 100644 --- a/Documentation/gitignore.txt +++ b/Documentation/gitignore.txt @@ -41,18 +41,24 @@ precedence, the last matching pattern decides the outcome): variable 'core.excludesfile'. Which file to place a pattern in depends on how the pattern is meant to -be used. Patterns which should be version-controlled and distributed to -other repositories via clone (i.e., files that all developers will want -to ignore) should go into a `.gitignore` file. Patterns which are -specific to a particular repository but which do not need to be shared -with other related repositories (e.g., auxiliary files that live inside -the repository but are specific to one user's workflow) should go into -the `$GIT_DIR/info/exclude` file. Patterns which a user wants git to -ignore in all situations (e.g., backup or temporary files generated by -the user's editor of choice) generally go into a file specified by -`core.excludesfile` in the user's `~/.gitconfig`. Its default value is -$XDG_CONFIG_HOME/git/ignore. If $XDG_CONFIG_HOME is either not set or empty, -$HOME/.config/git/ignore is used instead. +be used. + + * Patterns which should be version-controlled and distributed to + other repositories via clone (i.e., files that all developers will want + to ignore) should go into a `.gitignore` file. + + * Patterns which are + specific to a particular repository but which do not need to be shared + with other related repositories (e.g., auxiliary files that live inside + the repository but are specific to one user's workflow) should go into + the `$GIT_DIR/info/exclude` file. + + * Patterns which a user wants git to + gnore in all situations (e.g., backup or temporary files generated by + the user's editor of choice) generally go into a file specified by + `core.excludesfile` in the user's `~/.gitconfig`. Its default value is + $XDG_CONFIG_HOME/git/ignore. If $XDG_CONFIG_HOME is either not set or + empty, $HOME/.config/git/ignore is used instead. The underlying git plumbing tools, such as 'git ls-files' and 'git read-tree', read -- 1.7.8.msysgit.0 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH 0/8] Small documentation updates
This, my first patch series, adds small documentation updates covering points I had noticed or had to research elsewhere. The small 'git' update applies on top of Junio's changes in 'next'. e.g. http://article.gmane.org/gmane.comp.version-control.git/204794 Philip Philip Oakley (8): Doc: Bundle file usage Doc: shallow clone deepens _to_ new depth Doc: Improve shallow depth wording Doc: 'git' has a discussion section Doc: separate gitignore pattern sources Doc add: link gitignore Doc clean: add See Also links Doc branch: show -vv option and alternative Documentation/fetch-options.txt |3 +- Documentation/git-add.txt |3 +- Documentation/git-branch.txt |5 ++- Documentation/git-bundle.txt | 16 -- Documentation/git-clean.txt |6 + Documentation/git.txt |1 + Documentation/gitignore.txt | 30 +--- Documentation/technical/pack-protocol.txt |8 -- Documentation/urls.txt|3 ++ 9 files changed, 49 insertions(+), 26 deletions(-) -- 1.7.8.msysgit.0 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
status of git interop with other VCS
Hi all, I thought I would summarise current status of interop between git and other remote VCSen. In particular I am interested in good git remote helpers for cvs, svn, hg, darcs and bzr. git-svn and the like are useful but git remote helpers are better because they map everything onto the git model better. cvs: there seems to have been a project but it was never merged: http://marc.info/?l=git&m=127279549623477&w=2 http://thread.gmane.org/gmane.comp.version-control.git/131620/focus=131632 svn: there was a gsoc project for this but it was never merged: http://git.wiki.kernel.org/index.php/SoC2011Projects#Remote_helper_for_Subversion_and_git-svn hg: there are a few projects for this, none are merged: git://github.com/SRabbelier/git.git http://marc.info/?l=git&m=134153749521450&w=2 darcs: can't find any project to add this, please let me know of one bzr: git-remote-bzr is part of bzr-git but it is quite buggy, hopefully this will improve over time though. -- bye, pabs http://bonedaddy.net/pabs3/ signature.asc Description: This is a digitally signed message part
Re: [PATCH 5/8] Doc: separate gitignore pattern sources
Philip Oakley writes: > + * Patterns which a user wants git to > + gnore in all situations (e.g., backup or temporary files generated by to _i_gnore (missing i). -- Matthieu Moy http://www-verimag.imag.fr/~moy/ -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 7/8] Doc clean: add See Also links
Philip Oakley writes: > --- a/Documentation/git-clean.txt > +++ b/Documentation/git-clean.txt > @@ -63,6 +63,12 @@ OPTIONS > Remove only files ignored by git. This may be useful to rebuild > everything from scratch, but keep manually created files. > > +SEE ALSO > + > +linkgit:gitignore[5] > +linkgit:gitrepository-layout[5] > +The optional configuration variable `core.excludesfile` linkgit:git-config[1] I think linkgit:gitignore[5] is enough. linkgit:gitrepository-layout[5] is a very general documentation, it's not clear to the reader which part is intended to be read in complement to git-clean, and indeed, the relevant information is already in linkgit:gitignore[5]. Same for core.excludesfile which is already documented in linkgit:gitignore[5]. Otherwise, I suspect we'll end-up having the transitive closure of SEE ALSO in each manpage ... -- Matthieu Moy http://www-verimag.imag.fr/~moy/ -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: Backlight control broken between 3.6.0-rc1 and 3.6.0-rc4
On Sun, Sep 16, 2012 at 5:30 AM, Grant wrote: > I have a Dell XPS 13 Ultrabook laptop. Backlight control used to be > broken, it works in 3.6.0-rc1, and it is broken again in 3.6.0-rc4. Wrong list. You probably meant to send this to the kernel mailing list. -John -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH 8/8] Doc branch: show -vv option and alternative
Indicate that the -v option can be given twice in the short options. Without it users pass over the option. Also indicate the alternate 'git remote show' method. Signed-off-by: Philip Oakley --- the option to show where a branch's remote is located should not be buried within an option. diff --git a/Documentation/git-branch.txt b/Documentation/git-branch.txt index 9c1d2f1..cc7f54c 100644 --- a/Documentation/git-branch.txt +++ b/Documentation/git-branch.txt @@ -130,12 +130,13 @@ This option is only applicable in non-verbose mode. Activate the list mode. `git branch ` would try to create a branch, use `git branch --list ` to list matching branches. --v:: +-v, -vv:: --verbose:: When in list mode, show sha1 and commit subject line for each head, along with relationship to upstream branch (if any). If given twice, print - the name of the upstream branch, as well. + the name of the upstream branch, as well (see also `git remote + show `). -q:: --quiet:: -- 1.7.8.msysgit.0 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH 2/8] Doc: shallow clone deepens _to_ new depth
Clarify that 'depth=' specifies the new depth from the remote's branch tip. It does not add the depth to the existing shallow clone. (details from pack-protocol.txt). Clarify that tags are not fetched. (details from shallow.txt) Signed-off-by: Philip Oakley diff --git a/Documentation/fetch-options.txt b/Documentation/fetch-options.txt index 39d326a..b4d6476 100644 --- a/Documentation/fetch-options.txt +++ b/Documentation/fetch-options.txt @@ -10,7 +10,8 @@ --depth=:: Deepen the history of a 'shallow' repository created by `git clone` with `--depth=` option (see linkgit:git-clone[1]) - by the specified number of commits. + to the specified number of commits from the tip of each remote + branch history. Tags for the deepened commits are not fetched. ifndef::git-pull[] --dry-run:: -- 1.7.8.msysgit.0 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH 6/8] Doc add: link gitignore
Include the gitignore link with the paired gitrepository- layout link. Signed-off-by: Philip Oakley --- without the gitignore link users are unlikely to realise the significance of the repository layout link, nor what to look for within it diff --git a/Documentation/git-add.txt b/Documentation/git-add.txt index 9c1d395..311be9a 100644 --- a/Documentation/git-add.txt +++ b/Documentation/git-add.txt @@ -155,7 +155,8 @@ Configuration The optional configuration variable `core.excludesfile` indicates a path to a file containing patterns of file names to exclude from git-add, similar to $GIT_DIR/info/exclude. Patterns in the exclude file are used in addition to -those in info/exclude. See linkgit:gitrepository-layout[5]. +those in info/exclude. See linkgit:gitrepository-layout[5] and +linkgit:gitignore[5]. EXAMPLES -- 1.7.8.msysgit.0 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH 4/8] Doc: 'git' has a discussion section
Highlight there is a further discussion section later in git man page Signed-off-by: Philip Oakley diff --git a/Documentation/git.txt b/Documentation/git.txt index 34d8a1b..56685c7 100644 --- a/Documentation/git.txt +++ b/Documentation/git.txt @@ -30,6 +30,7 @@ After you mastered the basic concepts, you can come back to this page to learn what commands git offers. You can learn more about individual git commands with "git help command". linkgit:gitcli[7] manual page gives you an overview of the command line command syntax. +See also the Discussion and Further Documentation sections below. Formatted and hyperlinked version of the latest git documentation can be viewed at `http://git-htmldocs.googlecode.com/git/git.html`. -- 1.7.8.msysgit.0 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH 3/8] Doc: Improve shallow depth wording
Avoid confusion in compound sentence about the start of the commit set and the depth measure. Use two sentences. Signed-off-by: Philip Oakley diff --git a/Documentation/technical/pack-protocol.txt b/Documentation/technical/pack-protocol.txt index 49cdc57..fa4acab 100644 --- a/Documentation/technical/pack-protocol.txt +++ b/Documentation/technical/pack-protocol.txt @@ -258,9 +258,11 @@ a positive depth, this step is skipped. unshallow-line = PKT-LINE("unshallow" SP obj-id) -If the client has requested a positive depth, the server will compute -the set of commits which are no deeper than the desired depth, starting -at the client's wants. The server writes 'shallow' lines for each +If the client has requested a positive depth the server will compute +the set of commits which are no deeper than the desired depth. The set +of commits start at the client's wants. + +The server writes 'shallow' lines for each commit whose parents will not be sent as a result. The server writes an 'unshallow' line for each commit which the client has indicated is shallow, but is no longer shallow at the currently requested depth -- 1.7.8.msysgit.0 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH 1/8] Doc: Bundle file usage
Git URLs can accept bundle files for fetch, pull and clone, include in that section. Include git clone in the bundle usage description. Correct the quoting of . Detail the '--all' option for cloning. Signed-off-by: Philip Oakley --- This follows from my question: http://stackoverflow.com/questions/11792671/how-to-git-bundle-a-complete-repo and thinking about what I misunderstood in the man page. diff --git a/Documentation/git-bundle.txt b/Documentation/git-bundle.txt index 16a6b0a..be6a5f1 100644 --- a/Documentation/git-bundle.txt +++ b/Documentation/git-bundle.txt @@ -21,12 +21,12 @@ Some workflows require that one or more branches of development on one machine be replicated on another machine, but the two machines cannot be directly connected, and therefore the interactive git protocols (git, ssh, rsync, http) cannot be used. This command provides support for -'git fetch' and 'git pull' to operate by packaging objects and references -in an archive at the originating machine, then importing those into -another repository using 'git fetch' and 'git pull' -after moving the archive by some means (e.g., by sneakernet). As no -direct connection between the repositories exists, the user must specify a -basis for the bundle that is held by the destination repository: the +'git fetch', 'git pull' and 'git clone', to operate by packaging +objects and references in an archive at the originating machine, then +importing those into another repository using 'git fetch', 'git pull', +or 'git clone', after moving the archive by some means (e.g., by sneakernet). +As no direct connection between the repositories exists, the user must +specify a basis for the bundle that is held by the destination repository: the bundle assumes that all objects in the basis are already in the destination repository. @@ -35,7 +35,7 @@ OPTIONS create :: Used to create a bundle named 'file'. This requires the - 'git-rev-list-args' arguments to define the bundle contents. +arguments to define the bundle contents. verify :: Used to check that a bundle file is valid and will apply @@ -92,6 +92,8 @@ It is okay to err on the side of caution, causing the bundle file to contain objects already in the destination, as these are ignored when unpacking at the destination. +To create a bundle for 'git clone', use `--all` for the . + EXAMPLE --- diff --git a/Documentation/urls.txt b/Documentation/urls.txt index 2890194..2d75cce 100644 --- a/Documentation/urls.txt +++ b/Documentation/urls.txt @@ -42,6 +42,9 @@ These two syntaxes are mostly equivalent, except the former implies --local option. endif::git-clone[] +'git clone', 'git fetch' and 'git pull', but not 'git push', will also +accept a suitable bundle file. See linkgit:git-bundle[1]. + When git doesn't know how to handle a certain transport protocol, it attempts to use the 'remote-' remote helper, if one exists. To explicitly request a remote helper, the following syntax -- 1.7.8.msysgit.0 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 5/8] Doc: separate gitignore pattern sources
On 16/09/12 13:03, Matthieu Moy wrote: Philip Oakley writes: + * Patterns which a user wants git to + gnore in all situations (e.g., backup or temporary files generated by to _i_gnore (missing i). Noted. Will correct. Philip (from new m/c so hopefully properly formatted) -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH v2 0/5] Support matching "**" in .gitattributes and .gitignore
Changes in v2: - Correct commit sha-1 in the 1/5 to the last GPL-2 rsync commit. State it is pristine import. Move wildmatch.[ch] to top dir. - Add tests to 5/5 (I forgot to test that the integration should run well, in addition to wildmatch() working in general) Note that there might be a regression because wildmatch() does not care about LC_CTYPE when dealing with character classes, while libc's fnmatch might. But it's probably not worth bothering about because we match against path names, which do not necessarily follow LC_TYPE but the file system's encoding. Nguyễn Thái Ngọc Duy (5): Import wildmatch from rsync compat/wildmatch: remove static variable force_lower_case compat/wildmatch: fix case-insensitive matching Integrate wildmatch to git Support "**" in .gitignore and .gitattributes patterns using wildmatch() .gitignore | 1 + Documentation/gitignore.txt| 3 + Makefile | 6 + attr.c | 4 +- dir.c | 5 +- t/t0003-attributes.sh | 17 ++ t/t3001-ls-files-others-exclude.sh | 11 ++ t/t3070-wildmatch.sh | 27 +++ t/t3070-wildmatch/wildtest.txt | 165 test-wildmatch.c | 228 +++ wildmatch.c| 373 + wildmatch.h| 6 + 12 files changed, 844 insertions(+), 2 deletions(-) create mode 100755 t/t3070-wildmatch.sh create mode 100644 t/t3070-wildmatch/wildtest.txt create mode 100644 test-wildmatch.c create mode 100644 wildmatch.c create mode 100644 wildmatch.h -- 1.7.12.403.gce5cf6f.dirty -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH v2 1/5] Import wildmatch from rsync
These files are from rsync.git commit f92f5b166e3019db42bc7fe1aa2f1a9178cd215d, which was the last commit before rsync turned GPL-3. All files are imported as-is and no-op. Adaptation is done in a separate patch. rsync.git -> git.git lib/wildmatch.[ch] wildmatch.[ch] wildtest.c test-wildmatch.c wildtest.txtt/t3070-wildmatch/wildtest.txt Signed-off-by: Nguyễn Thái Ngọc Duy --- t/t3070-wildmatch/wildtest.txt | 165 ++ test-wildmatch.c | 222 + wildmatch.c| 368 + wildmatch.h| 6 + 4 files changed, 761 insertions(+) create mode 100644 t/t3070-wildmatch/wildtest.txt create mode 100644 test-wildmatch.c create mode 100644 wildmatch.c create mode 100644 wildmatch.h diff --git a/t/t3070-wildmatch/wildtest.txt b/t/t3070-wildmatch/wildtest.txt new file mode 100644 index 000..42c1678 --- /dev/null +++ b/t/t3070-wildmatch/wildtest.txt @@ -0,0 +1,165 @@ +# Input is in the following format (all items white-space separated): +# +# The first two items are 1 or 0 indicating if the wildmat call is expected to +# succeed and if fnmatch works the same way as wildmat, respectively. After +# that is a text string for the match, and a pattern string. Strings can be +# quoted (if desired) in either double or single quotes, as well as backticks. +# +# MATCH FNMATCH_SAME "text to match" 'pattern to use' + +# Basic wildmat features +1 1 foofoo +0 1 foobar +1 1 '' "" +1 1 foo??? +0 1 foo?? +1 1 foo* +1 1 foof* +0 1 foo*f +1 1 foo*foo* +1 1 foobar *ob*a*r* +1 1 aaabababab *ab +1 1 foo* foo\* +0 1 foobar foo\*bar +1 1 f\oo f\\oo +1 1 ball *[al]? +0 1 ten[ten] +1 1 ten**[!te] +0 1 ten**[!ten] +1 1 tent[a-g]n +0 1 tent[!a-g]n +1 1 tont[!a-g]n +1 1 tont[^a-g]n +1 1 a]ba[]]b +1 1 a-ba[]-]b +1 1 a]ba[]-]b +0 1 aaba[]-]b +1 1 aaba[]a-]b +1 1 ] ] + +# Extended slash-matching features +0 1 foo/baz/barfoo*bar +1 1 foo/baz/barfoo**bar +0 1 foo/barfoo?bar +0 1 foo/barfoo[/]bar +0 1 foo/barf[^eiu][^eiu][^eiu][^eiu][^eiu]r +1 1 foo-barf[^eiu][^eiu][^eiu][^eiu][^eiu]r +0 1 foo**/foo +1 1 /foo **/foo +1 1 bar/baz/foo**/foo +0 1 bar/baz/foo*/foo +0 0 foo/bar/baz**/bar* +1 1 deep/foo/bar/baz **/bar/* +0 1 deep/foo/bar/baz/ **/bar/* +1 1 deep/foo/bar/baz/ **/bar/** +0 1 deep/foo/bar **/bar/* +1 1 deep/foo/bar/ **/bar/** +1 1 foo/bar/baz**/bar** +1 1 foo/bar/baz/x */bar/** +0 0 deep/foo/bar/baz/x */bar/** +1 1 deep/foo/bar/baz/x **/bar/*/* + +# Various additional tests +0 1 acrt a[c-c]st +1 1 acrt a[c-c]rt +0 1 ] [!]-] +1 1 a [!]-] +0 1 '' \ +0 1 \ \ +0 1 /\ */\ +1 1 /\ */\\ +1 1 foofoo +1 1 @foo @foo +0 1 foo@foo +1 1 [ab] \[ab] +1 1 [ab] [[]ab] +1 1 [ab] [[:]ab] +0 1 [ab] [[::]ab] +1 1 [ab] [[:digit]ab] +1 1 [ab] [\[:]ab] +1 1 ?a?b \??\?b +1 1 abc\a\b\c +0 1 foo'' +1 1 foo/bar/baz/to **/t[o] + +# Character class tests +1 1 a1B[[:alpha:]][[:digit:]][[:upper:]] +0 1 a [[:digit:][:upper:][:space:]] +1 1 A [[:digit:][:upper:][:space:]] +1 1 1 [[:digit:][:upper:][:space:]] +0 1 1 [[:digit:][:upper:][:spaci:]] +1 1 ' '[[:digit:][:upper:][:space:]] +0 1 . [[:digit:][:upper:][:space:]] +1 1 . [[:digit:][:punct:][:space:]] +1 1 5 [[:xdigit:]] +1 1 f [[:xdigit:]] +1 1 D [[:xdigit:]] +1 1 _ [[:alnum:][:alpha:][:blank:][:cntrl:][:digit:][:graph:][:lower:][:print:][:punct:][:space:][:upper:][:xdigit:]] +#1 1 � [^[:alnum:][:alpha:][:blank:][:cntrl:][:digit:][:graph:][:lower:][:print:][:punct:][:space:][:upper:][:xdigit:]] +1 1 [^[:alnum:][:alpha:][:blank:][:digit:][:graph:][:lower:][:print:][:punct:][:space:][:upper:][:xdigit:]] +1 1 . [^[:alnum:][:alpha:][:blank:][:cntrl:][:digit:][:lower:][:space:][:upper:][:xdigit:]]
[PATCH v2 2/5] compat/wildmatch: remove static variable force_lower_case
One place less to worry about thread safety Signed-off-by: Nguyễn Thái Ngọc Duy --- wildmatch.c | 17 +++-- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/wildmatch.c b/wildmatch.c index f3a1731..e824eb2 100644 --- a/wildmatch.c +++ b/wildmatch.c @@ -57,11 +57,10 @@ int wildmatch_iteration_count; #endif -static int force_lower_case = 0; - /* Match pattern "p" against the a virtually-joined string consisting * of "text" and any strings in array "a". */ -static int dowild(const uchar *p, const uchar *text, const uchar*const *a) +static int dowild(const uchar *p, const uchar *text, + const uchar*const *a, int force_lower_case) { uchar p_ch; @@ -121,7 +120,7 @@ static int dowild(const uchar *p, const uchar *text, const uchar*const *a) t_ch = *text; continue; } - if ((matched = dowild(p, text, a)) != FALSE) { + if ((matched = dowild(p, text, a, force_lower_case)) != FALSE) { if (!special || matched != ABORT_TO_STARSTAR) return matched; } else if (!special && t_ch == '/') @@ -291,7 +290,7 @@ int wildmatch(const char *pattern, const char *text) #ifdef WILD_TEST_ITERATIONS wildmatch_iteration_count = 0; #endif -return dowild((const uchar*)pattern, (const uchar*)text, nomore) == TRUE; +return dowild((const uchar*)pattern, (const uchar*)text, nomore, 0) == TRUE; } /* Match the "pattern" against the forced-to-lower-case "text" string. */ @@ -302,9 +301,7 @@ int iwildmatch(const char *pattern, const char *text) #ifdef WILD_TEST_ITERATIONS wildmatch_iteration_count = 0; #endif -force_lower_case = 1; -ret = dowild((const uchar*)pattern, (const uchar*)text, nomore) == TRUE; -force_lower_case = 0; +ret = dowild((const uchar*)pattern, (const uchar*)text, nomore, 1) == TRUE; return ret; } @@ -331,7 +328,7 @@ int wildmatch_array(const char *pattern, const char*const *texts, int where) if (!text) return FALSE; -if ((matched = dowild(p, text, a)) != TRUE && where < 0 +if ((matched = dowild(p, text, a, 0)) != TRUE && where < 0 && matched != ABORT_ALL) { while (1) { if (*text == '\0') { @@ -339,7 +336,7 @@ int wildmatch_array(const char *pattern, const char*const *texts, int where) return FALSE; continue; } - if (*text++ == '/' && (matched = dowild(p, text, a)) != FALSE + if (*text++ == '/' && (matched = dowild(p, text, a, 0)) != FALSE && matched != ABORT_TO_STARSTAR) break; } -- 1.7.12.403.gce5cf6f.dirty -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH v2 3/5] compat/wildmatch: fix case-insensitive matching
dowild() does case insensitive matching by lower-casing the text. That means lower case letters in patterns imply case-insensitive matching, but upper case means exact matching. We do not want that subtlety. Lower case pattern too so iwildmatch() always does what we expect it to do. Signed-off-by: Nguyễn Thái Ngọc Duy --- wildmatch.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/wildmatch.c b/wildmatch.c index e824eb2..c7f7f9f 100644 --- a/wildmatch.c +++ b/wildmatch.c @@ -81,6 +81,8 @@ static int dowild(const uchar *p, const uchar *text, } if (force_lower_case && ISUPPER(t_ch)) t_ch = tolower(t_ch); + if (force_lower_case && ISUPPER(p_ch)) + p_ch = tolower(p_ch); switch (p_ch) { case '\\': /* Literal match with following character. Note that the test -- 1.7.12.403.gce5cf6f.dirty -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH v2 4/5] Integrate wildmatch to git
This makes wildmatch.c part of libgit.a and builds test-wildmatch Signed-off-by: Nguyễn Thái Ngọc Duy --- .gitignore | 1 + Makefile | 6 ++ t/t3070-wildmatch.sh | 27 +++ test-wildmatch.c | 8 +++- wildmatch.c | 8 +++- 5 files changed, 48 insertions(+), 2 deletions(-) create mode 100755 t/t3070-wildmatch.sh diff --git a/.gitignore b/.gitignore index 68fe464..54b1b3b 100644 --- a/.gitignore +++ b/.gitignore @@ -196,6 +196,7 @@ /test-sigchain /test-subprocess /test-svn-fe +/test-wildmatch /common-cmds.h *.tar.gz *.dsc diff --git a/Makefile b/Makefile index 56301dc..745e88c 100644 --- a/Makefile +++ b/Makefile @@ -511,6 +511,7 @@ TEST_PROGRAMS_NEED_X += test-sha1 TEST_PROGRAMS_NEED_X += test-sigchain TEST_PROGRAMS_NEED_X += test-subprocess TEST_PROGRAMS_NEED_X += test-svn-fe +TEST_PROGRAMS_NEED_X += test-wildmatch TEST_PROGRAMS = $(patsubst %,%$X,$(TEST_PROGRAMS_NEED_X)) @@ -683,6 +684,7 @@ LIB_H += userdiff.h LIB_H += utf8.h LIB_H += varint.h LIB_H += walker.h +LIB_H += wildmatch.h LIB_H += wt-status.h LIB_H += xdiff-interface.h LIB_H += xdiff/xdiff.h @@ -814,6 +816,7 @@ LIB_OBJS += utf8.o LIB_OBJS += varint.o LIB_OBJS += version.o LIB_OBJS += walker.o +LIB_OBJS += wildmatch.o LIB_OBJS += wrapper.o LIB_OBJS += write_or_die.o LIB_OBJS += ws.o @@ -2586,6 +2589,9 @@ test-svn-fe$X: vcs-svn/lib.a test-%$X: test-%.o GIT-LDFLAGS $(GITLIBS) $(QUIET_LINK)$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $(filter %.o,$^) $(filter %.a,$^) $(LIBS) +test-wildmatch$X: test-wildmatch.o GIT-LDFLAGS + $(QUIET_LINK)$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $(filter %.o,$^) -lpopt + check-sha1:: test-sha1$X ./test-sha1.sh diff --git a/t/t3070-wildmatch.sh b/t/t3070-wildmatch.sh new file mode 100755 index 000..7fb63ff --- /dev/null +++ b/t/t3070-wildmatch.sh @@ -0,0 +1,27 @@ +#!/bin/sh + +test_description='wildmatch tests' + +. ./test-lib.sh + +test_wildmatch() { +test_expect_success "wildmatch $*" " + test-wildmatch $* ../t3070-wildmatch/wildtest.txt >actual && + echo 'No wildmatch errors found.' >expected && + test_cmp expected actual +" +} + +test_wildmatch -x1 +test_wildmatch -x1 -e1 +test_wildmatch -x1 -else +test_wildmatch -x2 +test_wildmatch -x2 -ese +test_wildmatch -x3 +test_wildmatch -x3 -e1 +test_wildmatch -x4 +test_wildmatch -x4 -e2e +test_wildmatch -x5 +test_wildmatch -x5 -es + +test_done diff --git a/test-wildmatch.c b/test-wildmatch.c index 88585c2..828188a 100644 --- a/test-wildmatch.c +++ b/test-wildmatch.c @@ -20,7 +20,13 @@ /*#define COMPARE_WITH_FNMATCH*/ #define WILD_TEST_ITERATIONS -#include "lib/wildmatch.c" +#include "wildmatch.c" + +#define MAXPATHLEN 1024 +#ifdef NO_STRLCPY +#include "compat/strlcpy.c" +#define strlcpy gitstrlcpy +#endif #include diff --git a/wildmatch.c b/wildmatch.c index c7f7f9f..625cb0c 100644 --- a/wildmatch.c +++ b/wildmatch.c @@ -9,7 +9,13 @@ ** work differently than '*', and to fix the character-class code. */ -#include "rsync.h" +#include +#include +#include + +#include "wildmatch.h" + +typedef unsigned char uchar; /* What character marks an inverted character class? */ #define NEGATE_CLASS '!' -- 1.7.12.403.gce5cf6f.dirty -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH v2 5/5] Support "**" in .gitignore and .gitattributes patterns using wildmatch()
Signed-off-by: Nguyễn Thái Ngọc Duy --- Documentation/gitignore.txt| 3 +++ attr.c | 4 +++- dir.c | 5 - t/t0003-attributes.sh | 17 + t/t3001-ls-files-others-exclude.sh | 11 +++ 5 files changed, 38 insertions(+), 2 deletions(-) diff --git a/Documentation/gitignore.txt b/Documentation/gitignore.txt index c1f692a..eb81d31 100644 --- a/Documentation/gitignore.txt +++ b/Documentation/gitignore.txt @@ -93,6 +93,9 @@ PATTERN FORMAT For example, "Documentation/{asterisk}.html" matches "Documentation/git.html" but not "Documentation/ppc/ppc.html" or "tools/perf/Documentation/perf.html". ++ +Contrary to fnmatch(3), git matches "**" to anything including +slashes, similar to rsync(1). - A leading slash matches the beginning of the pathname. For example, "/{asterisk}.c" matches "cat-file.c" but not diff --git a/attr.c b/attr.c index 3430faf..2cea18c 100644 --- a/attr.c +++ b/attr.c @@ -12,6 +12,7 @@ #include "exec_cmd.h" #include "attr.h" #include "dir.h" +#include "wildmatch.h" const char git_attr__true[] = "(builtin)true"; const char git_attr__false[] = "\0(builtin)false"; @@ -666,7 +667,8 @@ static int path_matches(const char *pathname, int pathlen, return 0; if (baselen != 0) baselen++; - return fnmatch_icase(pattern, pathname + baselen, FNM_PATHNAME) == 0; + return (ignore_case && iwildmatch(pattern, pathname + baselen)) || + (!ignore_case && wildmatch(pattern, pathname + baselen)); } static int macroexpand_one(int attr_nr, int rem); diff --git a/dir.c b/dir.c index 4868339..55ab2b3 100644 --- a/dir.c +++ b/dir.c @@ -8,6 +8,7 @@ #include "cache.h" #include "dir.h" #include "refs.h" +#include "wildmatch.h" struct path_simplify { int len; @@ -575,7 +576,9 @@ int excluded_from_list(const char *pathname, namelen -= prefix; } - if (!namelen || !fnmatch_icase(exclude, name, FNM_PATHNAME)) + if (!namelen || + ((ignore_case && iwildmatch(exclude, name)) || +(!ignore_case && wildmatch(exclude, name return to_exclude; } return -1; /* undecided */ diff --git a/t/t0003-attributes.sh b/t/t0003-attributes.sh index febc45c..6c3c554 100755 --- a/t/t0003-attributes.sh +++ b/t/t0003-attributes.sh @@ -232,4 +232,21 @@ test_expect_success 'bare repository: test info/attributes' ' attr_check subdir/a/i unspecified ' +test_expect_success '"**" test' ' + cd .. && + echo "**/f foo=bar" >.gitattributes && + cat <<\EOF >expect && +f: foo: unspecified +a/f: foo: bar +a/b/f: foo: bar +a/b/c/f: foo: bar +EOF + git check-attr foo -- "f" >actual 2>err && + git check-attr foo -- "a/f" >>actual 2>>err && + git check-attr foo -- "a/b/f" >>actual 2>>err && + git check-attr foo -- "a/b/c/f" >>actual 2>>err && + test_cmp expect actual && + test_line_count = 0 err +' + test_done diff --git a/t/t3001-ls-files-others-exclude.sh b/t/t3001-ls-files-others-exclude.sh index c8fe978..67c8bcf 100755 --- a/t/t3001-ls-files-others-exclude.sh +++ b/t/t3001-ls-files-others-exclude.sh @@ -214,4 +214,15 @@ test_expect_success 'subdirectory ignore (l1)' ' test_cmp expect actual ' + +test_expect_success 'ls-files with "**" patterns' ' + cat <<\EOF >expect && +one/a.1 +one/two/a.1 +three/a.1 +EOF + git ls-files -o -i --exclude "**/a.1" >actual + test_cmp expect actual +' + test_done -- 1.7.12.403.gce5cf6f.dirty -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 2/3] rebase -i: Teach "--edit-todo" action
On 09/16/12 02:54, Junio C Hamano wrote: > In any case, what information are you discarding and then replacing > with the standard boilerplate? It's to strip out the comment that says: # However, if you remove everything, the rebase will be aborted. As there's no way reliable way to know where that line is and remove it, the only way I can think of is to remove all the comments, and append the help messages again. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH] completion: add --no-edit to git-commit
Signed-off-by: Yacine Belkadi --- contrib/completion/git-completion.bash |3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash index 1b43329..be800e0 100644 --- a/contrib/completion/git-completion.bash +++ b/contrib/completion/git-completion.bash @@ -1018,7 +1018,8 @@ _git_commit () --*) __gitcomp " --all --author= --signoff --verify --no-verify - --edit --amend --include --only --interactive + --edit --no-edit + --amend --include --only --interactive --dry-run --reuse-message= --reedit-message= --reset-author --file= --message= --template= --cleanup= --untracked-files --untracked-files= -- 1.7.9.5 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH v2 1/3] rebase -i: Refactor help messages for todo file
Signed-off-by: Andrew Wong --- git-rebase--interactive.sh | 31 --- 1 file changed, 20 insertions(+), 11 deletions(-) diff --git a/git-rebase--interactive.sh b/git-rebase--interactive.sh index a09e842..4d57e50 100644 --- a/git-rebase--interactive.sh +++ b/git-rebase--interactive.sh @@ -115,6 +115,23 @@ mark_action_done () { fi } +append_todo_help () { + cat >> "$todo" << EOF +# +# Commands: +# p, pick = use commit +# r, reword = use commit, but edit the commit message +# e, edit = use commit, but stop for amending +# s, squash = use commit, but meld into previous commit +# f, fixup = like "squash", but discard this commit's log message +# x, exec = run command (the rest of the line) using shell +# +# These lines can be re-ordered; they are executed from top to bottom. +# +# If you remove a line here THAT COMMIT WILL BE LOST. +EOF +} + make_patch () { sha1_and_parents="$(git rev-list --parents -1 "$1")" case "$sha1_and_parents" in @@ -901,18 +918,10 @@ test -n "$cmd" && add_exec_commands "$todo" cat >> "$todo" << EOF # Rebase $shortrevisions onto $shortonto +EOF +append_todo_help +cat >> "$todo" << EOF # -# Commands: -# p, pick = use commit -# r, reword = use commit, but edit the commit message -# e, edit = use commit, but stop for amending -# s, squash = use commit, but meld into previous commit -# f, fixup = like "squash", but discard this commit's log message -# x, exec = run command (the rest of the line) using shell -# -# These lines can be re-ordered; they are executed from top to bottom. -# -# If you remove a line here THAT COMMIT WILL BE LOST. # However, if you remove everything, the rebase will be aborted. # EOF -- 1.7.12.318.g79683ba.dirty -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH v2 2/3] rebase -i: Teach "--edit-todo" action
This allows users to edit the todo file while they're stopped in the middle of an interactive rebase. When this action is executed, all comments from the original todo file are stripped, and new help messages are appended to the end. Signed-off-by: Andrew Wong --- Documentation/git-rebase.txt | 5 - git-rebase--interactive.sh | 17 + git-rebase.sh| 13 + 3 files changed, 34 insertions(+), 1 deletion(-) diff --git a/Documentation/git-rebase.txt b/Documentation/git-rebase.txt index fd535b0..da067ec 100644 --- a/Documentation/git-rebase.txt +++ b/Documentation/git-rebase.txt @@ -12,7 +12,7 @@ SYNOPSIS [] [] 'git rebase' [-i | --interactive] [options] [--exec ] [--onto ] --root [] -'git rebase' --continue | --skip | --abort +'git rebase' --continue | --skip | --abort | --edit-todo DESCRIPTION --- @@ -245,6 +245,9 @@ leave out at most one of A and B, in which case it defaults to HEAD. --skip:: Restart the rebasing process by skipping the current patch. +--edit-todo:: + Edit the todo list during an interactive rebase. + -m:: --merge:: Use merging strategies to rebase. When the recursive (default) merge diff --git a/git-rebase--interactive.sh b/git-rebase--interactive.sh index 4d57e50..fcd15be 100644 --- a/git-rebase--interactive.sh +++ b/git-rebase--interactive.sh @@ -792,6 +792,23 @@ skip) do_rest ;; +edit-todo) + sed -e '/^#/d' < "$todo" > "$todo".new + mv -f "$todo".new "$todo" + append_todo_help + cat >> "$todo" << EOF +# +# You are editing the todo file of an ongoing interactive rebase. +# To continue rebase after editing, run: +# git rebase --continue +# +EOF + + git_sequence_editor "$todo" || + die_abort "Could not execute editor" + + exit + ;; esac git var GIT_COMMITTER_IDENT >/dev/null || diff --git a/git-rebase.sh b/git-rebase.sh index 15da926..e5a289c 100755 --- a/git-rebase.sh +++ b/git-rebase.sh @@ -38,6 +38,7 @@ C=!passed to 'git apply' continue! continue abort! abort and check out the original branch skip! skip current patch and continue +edit-todo! edit the todo list during an interactive rebase " . git-sh-setup . git-sh-i18n @@ -194,6 +195,10 @@ do test $total_argc -eq 2 || usage action=${1##--} ;; + --edit-todo) + test $total_argc -eq 2 || usage + action=${1##--} + ;; --onto) test 2 -le "$#" || usage onto="$2" @@ -306,6 +311,11 @@ then fi fi +if test "$action" = "edit-todo" && test "$type" != "interactive" +then + die "$(gettext "The --edit-todo action can only be used during interactive rebase.")" +fi + case "$action" in continue) # Sanity check @@ -338,6 +348,9 @@ abort) rm -r "$state_dir" exit ;; +edit-todo) + run_specific_rebase + ;; esac # Make sure no rebase is in progress -- 1.7.12.318.g79683ba.dirty -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH v2 3/3] rebase -i: Add tests for "--edit-todo"
Signed-off-by: Andrew Wong --- t/t3404-rebase-interactive.sh | 18 ++ 1 file changed, 18 insertions(+) diff --git a/t/t3404-rebase-interactive.sh b/t/t3404-rebase-interactive.sh index 7304b66..6eafb63 100755 --- a/t/t3404-rebase-interactive.sh +++ b/t/t3404-rebase-interactive.sh @@ -911,4 +911,22 @@ test_expect_success 'rebase -i --root fixup root commit' ' test 0 = $(git cat-file commit HEAD | grep -c ^parent\ ) ' +test_expect_success 'rebase --edit-todo does not works on non-interactive rebase' ' + git reset --hard && + git checkout conflict-branch && + test_must_fail git rebase --onto HEAD~2 HEAD~ && + test_must_fail git rebase --edit-todo && + git rebase --abort +' + +test_expect_success 'rebase --edit-todo can be used to modify todo' ' + git reset --hard && + git checkout no-conflict-branch^0 && + FAKE_LINES="edit 1 2 3" git rebase -i HEAD~3 && + FAKE_LINES="2 1" git rebase --edit-todo && + git rebase --continue + test M = $(git cat-file commit HEAD^ | sed -ne \$p) && + test L = $(git cat-file commit HEAD | sed -ne \$p) +' + test_done -- 1.7.12.318.g79683ba.dirty -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: Backlight control broken between 3.6.0-rc1 and 3.6.0-rc4
>> I have a Dell XPS 13 Ultrabook laptop. Backlight control used to be >> broken, it works in 3.6.0-rc1, and it is broken again in 3.6.0-rc4. > > Wrong list. You probably meant to send this to the kernel mailing list. > > -John Yes and sorry. Somebody already straightened me out off-list. I should have already retracted this. :) - Grant -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Remove all files except a few files, using filter-branch
Hi, all. I want to remove all files except a few files, in the history of my git repository. I tried to do that as follows: git filter-branch --index-filter "git rm --cached --ignore-unmatch $(git ls-files | grep -v '^filename$' | tr '\n' ' ')" But this does not work well if there is a file whose name is not encoded in us-ascii or includes parenthesis. git-filter-branch is great to remove some files in my repository, but not good enough to remove all except only a few. Does anyone know the better way? -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: How do I pronounce "blob"?
Thanks, now I can pronounce the word confidently with your help. On Sun, Sep 16, 2012 at 2:17 AM, Martin Langhoff wrote: > On Sat, Sep 15, 2012 at 9:24 AM, Yi, EungJun wrote: >> "bee-lob" or "bla:b"? > > Like Bob, add an L in there. > > > m > -- > martin.langh...@gmail.com > mar...@laptop.org -- Software Architect - OLPC > - ask interesting questions > - don't get distracted with shiny stuff - working code first > - http://wiki.laptop.org/go/User:Martinlanghoff -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: Remove all files except a few files, using filter-branch
"Yi, EungJun" writes: > Hi, all. > > I want to remove all files except a few files, in the history of my > git repository. > > I tried to do that as follows: > > git filter-branch --index-filter "git rm --cached --ignore-unmatch > $(git ls-files | grep -v '^filename$' | tr '\n' ' ')" Try instead first removing all files, then restoring the files you want to keep. --index-filter "git rm --cached -qr -- . && git reset -q -- filename" Andreas. -- Andreas Schwab, sch...@linux-m68k.org GPG Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5 "And now for something completely different." -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH] Documentation: indent-with-non-tab uses tabwidth setting, not just 8
From: "Wesley J. Landaker" Update the documentation of the core.whitespace option "indent-with-non-tab" to correctly reflect that it uses the currently set tab width, set by the "tabwidth" option, rather than a fixed number. Signed-off-by: Wesley J. Landaker --- Documentation/config.txt |4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Documentation/config.txt b/Documentation/config.txt index 6416cae..113a196 100644 --- a/Documentation/config.txt +++ b/Documentation/config.txt @@ -559,8 +559,8 @@ core.whitespace:: * `space-before-tab` treats a space character that appears immediately before a tab character in the initial indent part of the line as an error (enabled by default). -* `indent-with-non-tab` treats a line that is indented with 8 or more - space characters as an error (not enabled by default). +* `indent-with-non-tab` treats a line that is indented with `tabwidth` space + characters or more as an error (not enabled by default). * `tab-in-indent` treats a tab character in the initial indent part of the line as an error (not enabled by default). * `blank-at-eof` treats blank lines added at the end of file as an error -- 1.7.10.4 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 7/8] Doc clean: add See Also links
On 16/09/12 13:08, Matthieu Moy wrote: Philip Oakley writes: --- a/Documentation/git-clean.txt +++ b/Documentation/git-clean.txt @@ -63,6 +63,12 @@ OPTIONS Remove only files ignored by git. This may be useful to rebuild everything from scratch, but keep manually created files. +SEE ALSO + +linkgit:gitignore[5] +linkgit:gitrepository-layout[5] +The optional configuration variable `core.excludesfile` linkgit:git-config[1] I think linkgit:gitignore[5] is enough. linkgit:gitrepository-layout[5] is a very general documentation, it's not clear to the reader which part is intended to be read in complement to git-clean, and indeed, the relevant information is already in linkgit:gitignore[5]. Same for core.excludesfile which is already documented in linkgit:gitignore[5]. Otherwise, I suspect we'll end-up having the transitive closure of SEE ALSO in each manpage ... I'd added all three partly because of the git add link which went first to the repository layout which didn't help me much without the extra link. In fact I've lost a patch (a mistaken rebase todo list possibly) to make the three git ignore pattern types more obvious in the documentation, which would probably cover your point. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: Unable to clone GIT project
On Sun, Sep 16, 2012 at 12:46 PM, Konstantin Khomoutov wrote: > On Sun, Sep 16, 2012 at 03:19:25AM +, ankush_aggar...@dell.com wrote: > >> I have created a GIT repository on Linux 64 bit machine. >> >> When I tried to clone GIT repository on windows 7 machine then I am getting >> below error. >> >> Error: >> git-upload-pack: error while loading shared libraries: libiconv.so.2: cannot >> open shared object file: No such file or directory >> fatal: The remote end hung up unexpectedly >> >> anyone please help me resolve the issue. > See [1] and generally search google for msysgit+libiconv.so.2 as it > contains links to other approaches to working around this problem. > > Note that questions about technical issues with Git for Windows are > better asked on the msysgit mailing list [2] or in the project bug > tracker [3] (after searching both places for the relevant information). No. This is not a Git for Windows issue. The remote end is the one who isn't able to load libiconv, you can tell from the fact that it complains about "libiconv.so.2", not "libiconv-2.dll", and from the fact that the client informs us that the remote end hung up. Ankush: There's something wrong with the setup on your Linux machine; most likely something related to the library path set up. What protocol are you cloning over? -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 7/8] Doc clean: add See Also links
On 16/09/12 20:21, Philip Oakley wrote: On 16/09/12 13:08, Matthieu Moy wrote: Philip Oakley writes: --- a/Documentation/git-clean.txt +++ b/Documentation/git-clean.txt @@ -63,6 +63,12 @@ OPTIONS Remove only files ignored by git. This may be useful to rebuild everything from scratch, but keep manually created files. +SEE ALSO + +linkgit:gitignore[5] +linkgit:gitrepository-layout[5] +The optional configuration variable `core.excludesfile` linkgit:git-config[1] I think linkgit:gitignore[5] is enough. In fact I've lost a patch (a mistaken rebase todo list possibly) to make the three git ignore pattern types more obvious in the documentation, which would probably cover your point. False alarm. It was patch 5/8, with the spelling mistake. sorry. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH] git-jump: ignore (custom) prefix in diff mode
Matching the default file prefix b/ does not yield any results if config option diff.noprefix or diff.mnemonicprefix is enabled. Signed-off-by: Mischa POSLAWSKY --- Very useful script otherwise; thanks. contrib/git-jump/git-jump | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git contrib/git-jump/git-jump contrib/git-jump/git-jump index a33674e..dc90cd6 100755 --- contrib/git-jump/git-jump +++ contrib/git-jump/git-jump @@ -21,9 +21,9 @@ open_editor() { } mode_diff() { - git diff --relative "$@" | + git diff --no-prefix --relative "$@" | perl -ne ' - if (m{^\+\+\+ b/(.*)}) { $file = $1; next } + if (m{^\+\+\+ (.*)}) { $file = $1; next } defined($file) or next; if (m/^@@ .*\+(\d+)/) { $line = $1; next } defined($line) or next; -- 1.7.12.165.g8cb9d9c -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] git-jump: ignore (custom) prefix in diff mode
> diff --git contrib/git-jump/git-jump contrib/git-jump/git-jump > index a33674e..dc90cd6 100755 > --- contrib/git-jump/git-jump > +++ contrib/git-jump/git-jump Apparently diff.noprefix also applies to git format-patch. Even though git am does explicitly support -p0, I would argue against diff options creating non-standard patches. -- >8 -- Subject: [PATCH/RFC] format-patch: force default file prefixes in diff Override user configuration (eg. diff.noprefix) in patches intended for external consumption to match the default prefixes expected by git-am. Signed-off-by: Mischa POSLAWSKY --- builtin/log.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/builtin/log.c b/builtin/log.c index dff7921..91ded25 100644 --- a/builtin/log.c +++ b/builtin/log.c @@ -1131,6 +1131,8 @@ int cmd_format_patch(int argc, const char **argv, const char *prefix) rev.diff = 1; rev.max_parents = 1; DIFF_OPT_SET(&rev.diffopt, RECURSIVE); + rev.diffopt.a_prefix = "a/"; + rev.diffopt.b_prefix = "b/"; rev.subject_prefix = fmt_patch_subject_prefix; memset(&s_r_opt, 0, sizeof(s_r_opt)); s_r_opt.def = "HEAD"; -- 1.7.12.166.ga54f379 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCHv4] clone --single: limit the fetch refspec to fetched branch
Ralf Thielow writes: > - add tests for the refspec installed by the clone command Thanks. > +test_expect_success 'refspec contains all branches by default' ' > + git clone "file://$PWD" dir_all && There have been numerous "on windows which should we use, $PWD or $(pwd)?" gotchas. In this particular case, wouldn't the tests work equally well with "." to avoid the uneasiness factor? > + echo "+refs/heads/*:refs/remotes/origin/*" > expected && > + git --git-dir=dir_all/.git config --get remote.origin.fetch > actual && > + test_cmp expected actual I am a bit torn with this one. We'd want to make sure a single clone from a repository with two branches will not result in a repository where the next fetch will not pull in the other branch, and the value of the "remote.origin.fetch" is an implementation detail that happen to be what affects the outcome. The test is not checking the expected outcome in a direct way (imagine how this test will break when we do another change similar to the migration from .git/remotes/origin to the remote.origin.fetch variables). I'll let it pass for now, though. > +test_expect_success 'no refspec is written if remotes HEAD is detached' ' > + git checkout two^ && > + git clone --single-branch "file://$PWD" dir_detached && > + rm expected && touch expected && If earlier tests failed, there may not be any expected file and the "rm expected" will fail. You can just say >expected && instead. "touch" is a way to update the timestamp of the file; do not use it when you want to make sure an empty file exists. > + git --git-dir=dir_detached/.git config --get remote.origin.fetch > > actual > + test_cmp expected actual > +' I'd feel better if the test were like this instead: git checkout two^ && git clone --single-branch . dir_detached && ( cd dir_detached && git fetch && git for-each-ref refs/remotes/origin >actual ) && >expect && test_cmp expect actual That is what I would call "testing the desired results in the most direct way". Perhaps like this? -- >8 -- t5709-clone-refspec.sh -- >8 -- #!/bin/sh test_description='test refspec written by clone-command' . ./test-lib.sh test_expect_success 'setup' ' # Make two branches, "master" and "side" echo one >file && git add file && git commit -m one && echo two >file && git commit -a -m two && git tag two && echo three >file && git commit -a -m three && git checkout -b side && echo four >file && git commit -a -m four && git checkout master && # default clone git clone . dir_all && # default --single that follows HEAD=master git clone --single-branch . dir_master && # default --single that follows HEAD=side git checkout side && git clone --single-branch . dir_side && # explicit --single that follows side git checkout master && git clone --single-branch --branch side . dir_side2 && # --single that does not know what branch to follow git checkout two^ && git clone --single-branch . dir_detached && # advance both "master" and "side" branches git checkout side && echo five >file && git commit -a -m five && git checkout master && echo six >file && git commit -a -m six ' test_expect_success 'by default all branches will be kept updated' ' ( cd dir_all && git fetch && git for-each-ref refs/remotes/origin | sed -e "/HEAD$/d" \ -e "s|/remotes/origin/|/heads/|" >../actual ) && # follow both master and side git for-each-ref refs/heads >expect && test_cmp expect actual ' test_expect_success '--single-branch while HEAD pointing at master' ' ( cd dir_master && git fetch && git for-each-ref refs/remotes/origin | sed -e "/HEAD$/d" \ -e "s|/remotes/origin/|/heads/|" >../actual ) && # only follow master git for-each-ref refs/heads/master >expect && test_cmp expect actual ' test_expect_success '--single-branch while HEAD pointing at side' ' ( cd dir_side && git fetch && git for-each-ref refs/remotes/origin | sed -e "/HEAD$/d" \ -e "s|/remotes/origin/|/heads/|" >../actual ) && # only follow side git for-each-ref refs/heads/side >expect && test_cmp expect actual ' test_expect_success '--single-branch with explicit --branch side' ' ( cd dir_side2 && git fetch && git for-each-ref refs/remotes/origin | sed -e "/HEAD$/d" \ -e "s|/remotes/origin/|/head
Re: [PATCHv2 01/12] git p4 test: remove bash-ism of combined export/assignment
Luke Diamand writes: > On 16/09/12 07:05, Junio C Hamano wrote: >> Luke Diamand writes: >> >>> Looks good to me, ack. >> >> Thanks; is this an ack for the entire series, or are you expecting >> further back-and-forth with Pete before the whole thing is ready? > > An ack for the whole series. I'm just going through the rest of the > patches now but I don't expect to find any issues. As long as the parties involved in the part of the system can agree that "this series is basically sound", I'd be happy to merge it down. Minor issues can be fixed up as follow-up patches. Thanks. Will merge it to 'next'. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] Add userdiff patterns for Ada
Adrian Johnson writes: >> I do not seem to find anything interesting after @@, which means >> that xfuncname is not tested at all even though the log message >> claims the patch adds some. > > I probably misunderstood how the tests work. I thought t4034 tested > wordRegex while t4018 is for xfuncname. I based the Ada tests on the > Pascal tests but changed the operators to Ada operators. I'm not really > sure what else the test needs. The per-language for-loop you added ada to in t4018 is only to make sure there is no regexp syntax error in the built-in xfuncname, and does not check if the patterns make sense for the language at all. You could add test vectors to check if the built-in xfuncname catches beginning of functions in Ada correctly if you wanted to, but I think observing what appears on @@ lines in t4034 test vector would be a sufficient test. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 7/8] Doc clean: add See Also links
Matthieu Moy writes: > Philip Oakley writes: > >> --- a/Documentation/git-clean.txt >> +++ b/Documentation/git-clean.txt >> @@ -63,6 +63,12 @@ OPTIONS >> Remove only files ignored by git. This may be useful to rebuild >> everything from scratch, but keep manually created files. >> >> +SEE ALSO >> + >> +linkgit:gitignore[5] >> +linkgit:gitrepository-layout[5] >> +The optional configuration variable `core.excludesfile` >> linkgit:git-config[1] > > I think linkgit:gitignore[5] is enough. linkgit:gitrepository-layout[5] > is a very general documentation, it's not clear to the reader which part > is intended to be read in complement to git-clean, and indeed, the > relevant information is already in linkgit:gitignore[5]. Same for > core.excludesfile which is already documented in linkgit:gitignore[5]. > > Otherwise, I suspect we'll end-up having the transitive closure of SEE > ALSO in each manpage ... Concurred. Thanks. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] completion: add --no-edit to git-commit
thanks. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] Documentation: indent-with-non-tab uses tabwidth setting, not just 8
"Wesley J. Landaker" writes: > From: "Wesley J. Landaker" > > Update the documentation of the core.whitespace option > "indent-with-non-tab" to correctly reflect that it uses the currently > set tab width, set by the "tabwidth" option, rather than a fixed number. > > Signed-off-by: Wesley J. Landaker > --- > Documentation/config.txt |4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/Documentation/config.txt b/Documentation/config.txt > index 6416cae..113a196 100644 > --- a/Documentation/config.txt > +++ b/Documentation/config.txt > @@ -559,8 +559,8 @@ core.whitespace:: > * `space-before-tab` treats a space character that appears immediately >before a tab character in the initial indent part of the line as an >error (enabled by default). > -* `indent-with-non-tab` treats a line that is indented with 8 or more > - space characters as an error (not enabled by default). > +* `indent-with-non-tab` treats a line that is indented with `tabwidth` space > + characters or more as an error (not enabled by default). I would rather see this part left untouched. Your new text will force people who are not interested in using non-standard tab width to read through the bulletted list, only to find "The default tab width is 8". I think that is a regression in the documentation for more common readers. When somebody wants to use `indent-with-non-tab` and gets offended by the seemingly hardcoded "8" in the description, the reader has incentive to find out if there is a way to change that 8, and will find `tabwidth=` in the same bulletted list described, with the effect it has on both `indent-with-non-tab` and `tab-in-indent`. I think that should be sufficient for people who do use non-standard tab width using tabwidth=. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] git-jump: ignore (custom) prefix in diff mode
Mischa POSLAWSKY writes: >> diff --git contrib/git-jump/git-jump contrib/git-jump/git-jump >> index a33674e..dc90cd6 100755 >> --- contrib/git-jump/git-jump >> +++ contrib/git-jump/git-jump > > Apparently diff.noprefix also applies to git format-patch. Even though > git am does explicitly support -p0, I would argue against diff options > creating non-standard patches. > > -- >8 -- > Subject: [PATCH/RFC] format-patch: force default file prefixes in diff > > Override user configuration (eg. diff.noprefix) in patches intended for > external consumption to match the default prefixes expected by git-am. > > Signed-off-by: Mischa POSLAWSKY > --- Not all projects expect to see a/ & b/ prefix and these are configurable for a reason. Robbing the choice that has been supported for quite a long time from them is an unacceptable regression. Why did you think this may be a good idea in the first place? Perhaps you had configured your diff.noprefix in a wrong configuration file? This is primarily per-project choice, and your clone of git.git should not have diff.noprefix set, neither your $HOME/.gitconfig unless you always work on projects that want diff.noprefix. > builtin/log.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/builtin/log.c b/builtin/log.c > index dff7921..91ded25 100644 > --- a/builtin/log.c > +++ b/builtin/log.c > @@ -1131,6 +1131,8 @@ int cmd_format_patch(int argc, const char **argv, const > char *prefix) > rev.diff = 1; > rev.max_parents = 1; > DIFF_OPT_SET(&rev.diffopt, RECURSIVE); > + rev.diffopt.a_prefix = "a/"; > + rev.diffopt.b_prefix = "b/"; > rev.subject_prefix = fmt_patch_subject_prefix; > memset(&s_r_opt, 0, sizeof(s_r_opt)); > s_r_opt.def = "HEAD"; -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] git-jump: ignore (custom) prefix in diff mode
Mischa POSLAWSKY writes: > Matching the default file prefix b/ does not yield any results if config > option diff.noprefix or diff.mnemonicprefix is enabled. > > Signed-off-by: Mischa POSLAWSKY > --- > Very useful script otherwise; thanks. > > contrib/git-jump/git-jump | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git contrib/git-jump/git-jump contrib/git-jump/git-jump > index a33674e..dc90cd6 100755 > --- contrib/git-jump/git-jump > +++ contrib/git-jump/git-jump > @@ -21,9 +21,9 @@ open_editor() { > } > > mode_diff() { > - git diff --relative "$@" | > + git diff --no-prefix --relative "$@" | > perl -ne ' > - if (m{^\+\+\+ b/(.*)}) { $file = $1; next } > + if (m{^\+\+\+ (.*)}) { $file = $1; next } > defined($file) or next; > if (m/^@@ .*\+(\d+)/) { $line = $1; next } > defined($line) or next; Makes sense to me. Peff? -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH v2 4/5] Integrate wildmatch to git
Am I missing some includes? test-wildmatch.c:50: error: array type has incomplete element type test-wildmatch.c:52: error: 'POPT_ARG_NONE' undeclared here (not in a function) test-wildmatch.c:53: error: 'POPT_ARG_STRING' undeclared here (not in a function) test-wildmatch.c:54: error: 'POPT_ARG_INT' undeclared here (not in a function) test-wildmatch.c: In function 'main': test-wildmatch.c:122: error: 'poptContext' undeclared (first use in this function) test-wildmatch.c:122: error: (Each undeclared identifier is reported only once test-wildmatch.c:122: error: for each function it appears in.) test-wildmatch.c:122: error: expected ';' before 'pc' cc1: warnings being treated as errors test-wildmatch.c:125: error: implicit declaration of function 'poptGetNextOpt' test-wildmatch.c:125: error: 'pc' undeclared (first use in this function) test-wildmatch.c:128: error: implicit declaration of function 'poptGetOptArg' test-wildmatch.c:139: error: implicit declaration of function 'poptBadOption' test-wildmatch.c:139: error: 'POPT_BADOPTION_NOALIAS' undeclared (first use in this function) test-wildmatch.c:140: error: implicit declaration of function 'poptStrerror' test-wildmatch.c:148: error: implicit declaration of function 'poptGetArgs' -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] Documentation: indent-with-non-tab uses tabwidth setting, not just 8
On 09/16/2012 11:16 PM, Junio C Hamano wrote: > I would rather see this part left untouched. > > Your new text will force people who are not interested in using > non-standard tab width to read through the bulletted list, only to > find "The default tab width is 8". I think that is a regression in > the documentation for more common readers. > > When somebody wants to use `indent-with-non-tab` and gets offended > by the seemingly hardcoded "8" in the description, the reader has > incentive to find out if there is a way to change that 8, and will > find `tabwidth=` in the same bulletted list described, with the > effect it has on both `indent-with-non-tab` and `tab-in-indent`. > > I think that should be sufficient for people who do use non-standard > tab width using tabwidth=. Well, I'm not going to push the issue further than this e-mail, but I very much disagree. Please think about this: * The whole whitespace section talks generically about "spaces" and "tab characters". All of the options talk about tab in a generic way, with the one single exception of "indent-with-non-tab". * I know all about the tabwidth setting (I have it set in my configuration), but when I went looking in the whitespace documentation to try to flag a certain error I wanted to avoid, I was confused because "indent-with-non-tab" didn't do what I wanted ... instead it apparently used a hard-coded length of 8 spaces. My first thought was, well, I'd better fix THAT bug! * Of course, I did an experiment, and of course, it DOESN'T ACTUALLY DO WHAT THE DOCUMENTATION SAYS, instead it uses the tabwidth. This is good, I'm not complaining about how it works: this *is* what I want it to do. But the documentation is still wrong. * So, as you say, "the reader has incentive to find out if there is a way to change that 8". I did get incentive to find that, but it took me a few minutes of wasted time experimenting around with it, and then motived me to write a patch so that no one else will ever get confused about it again. If I've perhaps convinced you that it would be beneficial to make the documentation for this option precisely correct, but you don't like how it's worded (it's the way it is because I tried to make a very minimal change) I'd be happy to revise the patch, perhaps by changing the order of presentation of the options (e.g. mentioning tab width earlier in the section, or in some other way that you or someone may want to suggest). In any case, please, let's find some way to make the documentation both easy to read and also absolutely correct! =) -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 3/8] Doc: Improve shallow depth wording
Philip Oakley writes: > Avoid confusion in compound sentence about the start of the commit set > and the depth measure. Use two sentences. Dropping the first ',' after "positive depth" does not seem to make it any easier to read (I personally think it makes it a lot harder to read). Splitting the tail-end of the sentence into a separate sentence does make it easier to read, though. > > Signed-off-by: Philip Oakley > > diff --git a/Documentation/technical/pack-protocol.txt > b/Documentation/technical/pack-protocol.txt > index 49cdc57..fa4acab 100644 > --- a/Documentation/technical/pack-protocol.txt > +++ b/Documentation/technical/pack-protocol.txt > @@ -258,9 +258,11 @@ a positive depth, this step is skipped. >unshallow-line = PKT-LINE("unshallow" SP obj-id) > > > -If the client has requested a positive depth, the server will compute > -the set of commits which are no deeper than the desired depth, starting > -at the client's wants. The server writes 'shallow' lines for each > +If the client has requested a positive depth the server will compute > +the set of commits which are no deeper than the desired depth. The set > +of commits start at the client's wants. > + > +The server writes 'shallow' lines for each > commit whose parents will not be sent as a result. The server writes > an 'unshallow' line for each commit which the client has indicated is > shallow, but is no longer shallow at the currently requested depth -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 6/8] Doc add: link gitignore
Philip Oakley writes: > Include the gitignore link with the paired gitrepository- > layout link. > > Signed-off-by: Philip Oakley > --- > > without the gitignore link users are unlikely to realise the > significance of the repository layout link, nor what to look for > within it > > diff --git a/Documentation/git-add.txt b/Documentation/git-add.txt > index 9c1d395..311be9a 100644 > --- a/Documentation/git-add.txt > +++ b/Documentation/git-add.txt > @@ -155,7 +155,8 @@ Configuration > The optional configuration variable `core.excludesfile` indicates a path to a > file containing patterns of file names to exclude from git-add, similar to > $GIT_DIR/info/exclude. Patterns in the exclude file are used in addition to > -those in info/exclude. See linkgit:gitrepository-layout[5]. > +those in info/exclude. See linkgit:gitrepository-layout[5] and > +linkgit:gitignore[5]. A reader of git-add shouldn't have to refer to gitrepository-layout[5] in the first place when we talk about "add $pathspec" may ignore paths that are configured to be ignored. gitignore[5] should give everything necessary to him. This section (even before the precontext we can see in the patch) may need a bit larger rewrite so that it just refers to gitignore[5] and leave the details of where the exclude information comes to that manual page. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH v2 4/5] Integrate wildmatch to git
Junio C Hamano writes: > Am I missing some includes? > > test-wildmatch.c:50: error: array type has incomplete element type > test-wildmatch.c:52: error: 'POPT_ARG_NONE' undeclared here (not in a > function) > test-wildmatch.c:53: error: 'POPT_ARG_STRING' undeclared here (not in a > function) > test-wildmatch.c:54: error: 'POPT_ARG_INT' undeclared here (not in a function) > test-wildmatch.c: In function 'main': > test-wildmatch.c:122: error: 'poptContext' undeclared (first use in this > function) > test-wildmatch.c:122: error: (Each undeclared identifier is reported only once > test-wildmatch.c:122: error: for each function it appears in.) > test-wildmatch.c:122: error: expected ';' before 'pc' > cc1: warnings being treated as errors > test-wildmatch.c:125: error: implicit declaration of function 'poptGetNextOpt' > test-wildmatch.c:125: error: 'pc' undeclared (first use in this function) > test-wildmatch.c:128: error: implicit declaration of function 'poptGetOptArg' > test-wildmatch.c:139: error: implicit declaration of function 'poptBadOption' > test-wildmatch.c:139: error: 'POPT_BADOPTION_NOALIAS' undeclared (first use > in this function) > test-wildmatch.c:140: error: implicit declaration of function 'poptStrerror' > test-wildmatch.c:148: error: implicit declaration of function 'poptGetArgs' Yeah, popt.h it is. It is a bit distasteful that we have a build dependency only to build test-* helper on something that we do not even have runtime dependency on. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH v2 4/5] Integrate wildmatch to git
On Mon, Sep 17, 2012 at 12:54 PM, Junio C Hamano wrote: > Yeah, popt.h it is. It is a bit distasteful that we have a build > dependency only to build test-* helper on something that we do not > even have runtime dependency on. Yep. I don't know how popular libpopt is. But if it's undesired, we could rewrite test-wildmatch.c to use parse-options.c instead. We fork from rsync anyway due to license conflict so we don't have to keep it close to upstream any more. -- Duy -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] Documentation: indent-with-non-tab uses tabwidth setting, not just 8
Junio C Hamano writes: >> @@ -559,8 +559,8 @@ core.whitespace:: >> * `space-before-tab` treats a space character that appears immediately >>before a tab character in the initial indent part of the line as an >>error (enabled by default). >> -* `indent-with-non-tab` treats a line that is indented with 8 or more >> - space characters as an error (not enabled by default). >> +* `indent-with-non-tab` treats a line that is indented with `tabwidth` space >> + characters or more as an error (not enabled by default). > > I would rather see this part left untouched. > > Your new text will force people who are not interested in using > non-standard tab width to read through the bulletted list, only to > find "The default tab width is 8". I think that is a regression in > the documentation for more common readers. > > When somebody wants to use `indent-with-non-tab` and gets offended > by the seemingly hardcoded "8" in the description, the reader has > incentive to find out if there is a way to change that 8, and will > find `tabwidth=` in the same bulletted list described, with the > effect it has on both `indent-with-non-tab` and `tab-in-indent`. > > I think that should be sufficient for people who do use non-standard > tab width using tabwidth=. An alternative would be to lose the "8" (or `tabwidth`) from that description. I've always thought that the description of `tabwidth` is clear enough that "8" in the patch is not a hardcoded non-overridable value but is merely a default, but after reading that section a few more times, I no longer think that is the case. I originally wrote "8 or more space" but that wasn't because I thought it was important to stress "8 is the default", but because I didn't think of a better way to say what I wanted to say, which was "if you are filling the indentation with spaces when you could have just typed a tab with a few spaces, this error triggers", in other words "use of this is to encourage indenting with tabs". -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH v2 2/3] rebase -i: Teach "--edit-todo" action
On Sun, Sep 16, 2012 at 8:17 AM, Andrew Wong wrote: > diff --git a/Documentation/git-rebase.txt b/Documentation/git-rebase.txt > index fd535b0..da067ec 100644 > --- a/Documentation/git-rebase.txt > +++ b/Documentation/git-rebase.txt > @@ -12,7 +12,7 @@ SYNOPSIS > [] [] > 'git rebase' [-i | --interactive] [options] [--exec ] [--onto ] > --root [] > -'git rebase' --continue | --skip | --abort > +'git rebase' --continue | --skip | --abort | --edit-todo I guess you should add --edit-todo to OPTIONS_SPEC in git-rebase.sh as well. The OPTIONS_SPEC needs another little update too. I have included a patch at the end of this email that you include in a re-roll. > + git_sequence_editor "$todo" || > + die_abort "Could not execute editor" die_abort seems a little harsh -- it will discard the rebase state. Plain "die" would be better, I think. Also, if you even need to break the line after the || operator, you might want to indent the remainder by one tab. This file is quite consistent in using that style, although I don't know what the preferred style is in general in git. > git var GIT_COMMITTER_IDENT >/dev/null || > diff --git a/git-rebase.sh b/git-rebase.sh > index 15da926..e5a289c 100755 > --- a/git-rebase.sh > +++ b/git-rebase.sh > @@ -194,6 +195,10 @@ do > test $total_argc -eq 2 || usage > action=${1##--} > ;; > + --edit-todo) > + test $total_argc -eq 2 || usage > + action=${1##--} > + ;; It looks like this could be trivially combined with the previous case arm, making the match "--continue|--skip|--abort|--edit-todo)". -->8-- Author: Martin von Zweigbergk rebase usage: subcommands can not be combined with -i Since 95135b0 (rebase: stricter check of standalone sub command, 2011-02-06), git-rebase has not allowed to use -i together with e.g. --continue. Yet, when rebase started using OPTIONS_SPEC in 45e2acf (rebase: define options in OPTIONS_SPEC, 2011-02-28), the usage message included git-rebase [-i] --continue | --abort | --skip Remove the "[-i]" from this line. Signed-off-by: Martin von Zweigbergk diff --git a/git-rebase.sh b/git-rebase.sh index 15da926..e6b43a2 100755 --- a/git-rebase.sh +++ b/git-rebase.sh @@ -8,7 +8,7 @@ OPTIONS_KEEPDASHDASH= OPTIONS_SPEC="\ git rebase [-i] [options] [--exec ] [--onto ] [] [] git rebase [-i] [options] [--exec ] [--onto ] --root [] -git-rebase [-i] --continue | --abort | --skip +git-rebase --continue | --abort | --skip -- Available options are v,verbose! display a diffstat of what changed upstream -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH v6 0/4] Support non-WIN32 systems lacking poll()
Here's now my updated series of patches to make the win32 implementation of poll() available to other platforms: 1 - make poll available for other platforms lacking it by moving it into a separate directory and adjusting Makefile 2 - fix some win32 specific dependencies in poll.c by #ifdef the inclusion of two header files 3 - poll() exits too early with EFAULT if 1st arg is NULL, as fixed in gnulib recently 4 - make poll() work on platforms that can't recv() on a non-socket, namely HP NonStop, as fixed in gnulib recently Bye, Jojo -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] git-jump: ignore (custom) prefix in diff mode
Mischa POSLAWSKY wrote: > ... I would argue against diff options creating non-standard patches. Seems to me it might depend on what one means by "non-standard". I can envision cases in which increasing the number of context lines would result in the patch being more robust WRT applying correctly to a recipient's version that might be a bit different than the one against which it was created. OTOH one most likely does not want to create a patch with -b unless the apply tool also supports such and there is a way to communicate to the apply tool that -b was used in creating the patch. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH v6 1/4] make poll available for other platforms lacking it
move poll.[ch] out of compat/win32/ into compat/poll/ and adjust Makefile with the changed paths. Adding comments to Makefile about how/when to enable it and add logic for this Signed-off-by: Joachim Schmitz --- Makefile | 20 +++- compat/{win32 => poll}/poll.c | 0 compat/{win32 => poll}/poll.h | 0 3 files changed, 15 insertions(+), 5 deletions(-) rename compat/{win32 => poll}/poll.c (100%) rename compat/{win32 => poll}/poll.h (100%) diff --git a/Makefile b/Makefile index ac49320..7893297 100644 --- a/Makefile +++ b/Makefile @@ -152,6 +152,11 @@ all:: # # Define NO_MMAP if you want to avoid mmap. # +# Define NO_SYS_POLL_H if you don't have sys/poll.h. +# +# Define NO_POLL if you do not have or don't want to use poll(). +# This also implies NO_SYS_POLL_H. +# # Define NO_PTHREADS if you do not have or do not want to use Pthreads. # # Define NO_PREAD if you have a problem with pread() system call (e.g. @@ -598,10 +603,10 @@ LIB_H += compat/bswap.h LIB_H += compat/cygwin.h LIB_H += compat/mingw.h LIB_H += compat/obstack.h +LIB_H += compat/poll/poll.h LIB_H += compat/precompose_utf8.h LIB_H += compat/terminal.h LIB_H += compat/win32/dirent.h -LIB_H += compat/win32/poll.h LIB_H += compat/win32/pthread.h LIB_H += compat/win32/syslog.h LIB_H += connected.h @@ -1220,7 +1225,7 @@ ifeq ($(uname_S),Windows) NO_PREAD = YesPlease NEEDS_CRYPTO_WITH_SSL = YesPlease NO_LIBGEN_H = YesPlease - NO_SYS_POLL_H = YesPlease + NO_POLL_H = YesPlease NO_SYMLINK_HEAD = YesPlease NO_IPV6 = YesPlease NO_UNIX_SOCKETS = YesPlease @@ -1261,7 +1266,7 @@ ifeq ($(uname_S),Windows) BASIC_CFLAGS = -nologo -I. -I../zlib -Icompat/vcbuild -Icompat/vcbuild/include -DWIN32 -D_CONSOLE -DHAVE_STRING_H -D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_DEPRECATE COMPAT_OBJS = compat/msvc.o compat/winansi.o \ compat/win32/pthread.o compat/win32/syslog.o \ - compat/win32/poll.o compat/win32/dirent.o + compat/win32/dirent.o COMPAT_CFLAGS = -D__USE_MINGW_ACCESS -DNOGDI -DHAVE_STRING_H -DHAVE_ALLOCA_H -Icompat -Icompat/regex -Icompat/win32 -DSTRIP_EXTENSION=\".exe\" BASIC_LDFLAGS = -IGNORE:4217 -IGNORE:4049 -NOLOGO -SUBSYSTEM:CONSOLE -NODEFAULTLIB:MSVCRT.lib EXTLIBS = user32.lib advapi32.lib shell32.lib wininet.lib ws2_32.lib @@ -1316,7 +1321,7 @@ ifneq (,$(findstring MINGW,$(uname_S))) NO_PREAD = YesPlease NEEDS_CRYPTO_WITH_SSL = YesPlease NO_LIBGEN_H = YesPlease - NO_SYS_POLL_H = YesPlease + NO_POLL_H = YesPlease NO_SYMLINK_HEAD = YesPlease NO_UNIX_SOCKETS = YesPlease NO_SETENV = YesPlease @@ -1351,7 +1356,7 @@ ifneq (,$(findstring MINGW,$(uname_S))) COMPAT_CFLAGS += -DSTRIP_EXTENSION=\".exe\" COMPAT_OBJS += compat/mingw.o compat/winansi.o \ compat/win32/pthread.o compat/win32/syslog.o \ - compat/win32/poll.o compat/win32/dirent.o + compat/win32/dirent.o EXTLIBS += -lws2_32 PTHREAD_LIBS = X = .exe @@ -1605,6 +1610,11 @@ ifdef NO_GETTEXT BASIC_CFLAGS += -DNO_GETTEXT USE_GETTEXT_SCHEME ?= fallthrough endif +ifdef NO_POLL + NO_SYS_POLL_H = YesPlease + COMPAT_CFLAGS += -DNO_POLL -Icompat/poll + COMPAT_OBJS += compat/poll/poll.o +endif ifdef NO_STRCASESTR COMPAT_CFLAGS += -DNO_STRCASESTR COMPAT_OBJS += compat/strcasestr.o diff --git a/compat/win32/poll.c b/compat/poll/poll.c similarity index 100% rename from compat/win32/poll.c rename to compat/poll/poll.c diff --git a/compat/win32/poll.h b/compat/poll/poll.h similarity index 100% rename from compat/win32/poll.h rename to compat/poll/poll.h -- 1.7.12 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html