Re: [PATCH] make config --add behave correctly for empty and NULL values

2014-08-18 Thread Jeff King
On Mon, Aug 18, 2014 at 11:03:51PM -0700, Junio C Hamano wrote: > We already have some code paths that use ((void *)1) as a special > pointer value, so in that sense I would say it is not the end of the > world if you added a new one. No, but if you use it to replace the regexp, you end up having

Re: make profile issue on Git 2.1.0

2014-08-18 Thread Jeff King
On Sun, Aug 17, 2014 at 09:35:29PM -0500, Andrés Sicard-Ramírez wrote: > I have the following issue on Git 2.1.0: > > $ make prefix=/some-directory profile > ... > make[2]: Entering directory `/home/asr/src/git/git-2.1.0/t/perf' > rm -rf test-results > ./run > === Running 9 tests in this tree ===

Issuing warning when hook does not have execution permission

2014-08-18 Thread Babak M
Hi, I saw that if a hook file is present in .git/hooks and it does not have execution permissions it is silently ignored. I thought it might be worthwhile issuing a warning such as "Warning: pre-commit hook exists but it cannot be executed due to insufficient permissions". Not sure if this has b

Re: [PATCH] make config --add behave correctly for empty and NULL values

2014-08-18 Thread Junio C Hamano
Jeff King writes: > I just used > > #define CONFIG_REGEX_NONE ((void *)1) > > as my magic sentinel value, both for the string and compiled regex > versions. Adding a bit to the store struct is a lot less disgusting and > error-prone. So I won't share mine here. :) Actually, I wrote something l

Re: [PATCH] make config --add behave correctly for empty and NULL values

2014-08-18 Thread Jeff King
On Mon, Aug 18, 2014 at 11:18:52AM -0700, Junio C Hamano wrote: > Are we sure that "a^", which cannot be true for any string, will not > be caught by anybody's regcomp() as an error? I know regcomp() > accepts the expression and regexec() fails to match with GNU libc, > but that is not the whole

Re: [PATCH] Push the NATIVE_CRLF Makefile variable to C and added a test for native.

2014-08-18 Thread Eric Sunshine
On Mon, Aug 18, 2014 at 3:31 PM, Torsten Bögershausen wrote: > Commit 95f31e9a correctly points out that the NATIVE_CRLF setting is > incorrectly set on Mingw git. However, the Makefile variable is not > propagated to the C preprocessor and results in no change. This patch > pushes the definition

Re: [BUG] Hang when I did something a bit weird with submodules

2014-08-18 Thread Chris Packham
On Tue, Aug 19, 2014 at 4:33 PM, Chris Packham wrote: > Hi, > > I was just setting up a new project using submodules and have run into > what appears to be a hang when git status is invoked. I haven't tried > to reproduce this but this is basically what I did (edited highlights > from my bash_hist

[BUG] Hang when I did something a bit weird with submodules

2014-08-18 Thread Chris Packham
Hi, I was just setting up a new project using submodules and have run into what appears to be a hang when git status is invoked. I haven't tried to reproduce this but this is basically what I did (edited highlights from my bash_history). $ git --version git version 2.0.3 $ mkdir proj $ cd pro

[PATCH v3 10/27] rebase -i: teach do_pick the option --edit

2014-08-18 Thread Fabian Ruch
`do_pick` is the git-cherry-pick wrapper in git-rebase--interactive that is used to implement the to-do list command `pick`. To cater for the different pick behaviours (like `reword`), `do_pick` accepts several options not only from the git-cherry-pick but also the git-commit interface. Add the com

[PATCH v3 12/27] rebase -i: log the replay of root commits

2014-08-18 Thread Fabian Ruch
The command line used to recreate root commits specifies the option `-q` which suppresses the commit summary message. However, git-rebase--interactive tends to tell the user about the commits it creates in the final history, if she wishes (cf. command line option `--verbose`). The code parts handli

[PATCH v3 20/27] rebase -i: implement squash in terms of do_pick

2014-08-18 Thread Fabian Ruch
The to-do list command `squash` and its close relative `fixup` replay the changes of a commit like `pick` but do not recreate the commit. Instead they replace the previous commit with a new commit that also introduces the changes of the squashed commit. This is roughly like cherry-picking without c

[PATCH v3 11/27] rebase -i: implement reword in terms of do_pick

2014-08-18 Thread Fabian Ruch
The to-do list command `reword` replays a commit like `pick` but lets the user also edit the commit's log message. If one thinks of `pick` entries as scheduled `cherry-pick` command lines, then `reword` becomes an alias for the command line `cherry-pick --edit`. The porcelain `rebase--interactive`

[PATCH v3 14/27] rebase -i: commit only once when rewriting picks

2014-08-18 Thread Fabian Ruch
The options passed to `do_pick` determine whether the picked commit will be rewritten or not. If the commit gets rewritten, because the user requested to edit the commit message for instance, let `pick_one` merely apply the changes introduced by the commit and do not commit the resulting tree yet.

[PATCH v3 13/27] rebase -i: do not use -C when --no-edit is sufficient

2014-08-18 Thread Fabian Ruch
The command line used to recreate root commits uses `-C` to suppress the log message editor. This is unnecessarily confusing, though, because that suppression is a secondary effect of the option. The main purpose of `-C` is to pull the metadata from another commit, but here we know that this is a n

[PATCH v3 16/27] rebase -i: teach do_pick the option --amend

2014-08-18 Thread Fabian Ruch
`do_pick` is the git-cherry-pick wrapper in git-rebase--interactive that is used to implement the to-do list commands `pick`, `reword` and `edit`. To cater for the different pick behaviours (like `squash`), `do_pick` accepts several options not only from the git-cherry-pick but also the git-commit

[PATCH v3 22/27] rebase -i: parse to-do list command line options

2014-08-18 Thread Fabian Ruch
Read in to-do list lines as command args instead of command sha1 rest so that to-do list command lines can specify additional arguments apart from the commit hash and the log message title, which become the non-options in `args`. Loop over `args`, put all options (an argument beginning

[PATCH v3 15/27] rebase -i: do not die in do_pick

2014-08-18 Thread Fabian Ruch
Since `do_pick` might be executed in a sub-shell (a modified author environment for instance), calling `die` in `do_pick` has no effect but exiting the sub-shell with a failure exit status. The git-rebase--interactive script is not terminated. Moreover, if `do_pick` is called while a squash or fixu

[PATCH v3 19/27] rebase -i: prepare for squash in terms of do_pick --amend

2014-08-18 Thread Fabian Ruch
Rewrite `squash` and `fixup` handling in `do_next` using the sequence pick_one commit in order to test the correctness of a single `do_squash` or parameterised `do_pick` and make the subsequent patch reimplementing `squash` in terms of such a single function more readable. Do not call `r

[PATCH v3 21/27] rebase -i: explicitly distinguish replay commands and exec tasks

2014-08-18 Thread Fabian Ruch
There are two kinds of to-do list commands available. One kind replays a commit (`pick`, `reword`, `edit`, `squash` and `fixup` that is) and the other executes a shell command (`exec`). We will call the first kind replay commands. The two kinds of tasks are scheduled using different line formats.

[PATCH v3 24/27] rebase -i: teach do_pick the option --signoff

2014-08-18 Thread Fabian Ruch
`do_pick` is the git-cherry-pick wrapper in git-rebase--interactive that is currently used to implement most of the to-do list commands and offers additional options that will eventually find their way onto to-do lists. To extend the repertoire of available options, add the git-commit and git-cher

[PATCH v3 23/27] rebase -i: teach do_pick the option --reset-author

2014-08-18 Thread Fabian Ruch
`do_pick` is the git-cherry-pick wrapper in git-rebase--interactive that is used to implement many of the to-do list commands. Eventually, the complete `do_pick` interface will be exposed to the user in some form or another and those commands will become simple aliases for the `do_pick` options now

[PATCH v3 27/27] rebase -i: enable --signoff, --reset-author for pick, reword, edit

2014-08-18 Thread Fabian Ruch
Lift the general unknown option blockade for the `pick`, `reword` and `edit` commands. If `do_cmd` comes across one of the options `--signoff` and `--reset-author` while parsing a to-do entry and the scheduled command is either `pick` or `reword`, relay the option to `do_pick`. Remember to add Sig

[PATCH v3 07/27] commit: allow disabling pre-commit and commit-msg separately

2014-08-18 Thread Fabian Ruch
Introduce the git-commit command line options `--no-pre-commit` and `--no-commit-msg` to disable the pre-commit and commit-msg hooks, respectively. Make `--no-verify` a synonym for specifying both at the same time. This change is motivated by an internal usage of git-commit in git-rebase--interact

[PATCH v3 26/27] rebase -i: refuse to commit when resuming with updated head

2014-08-18 Thread Fabian Ruch
If git-rebase--interactive fails to apply the changes introduced by a commit due to conflicts, it interrupts the rebase process and gives the user a shell to resolve the conflicts manually. The process is resumed when the user executes `git rebase --continue`. If the index has changes, the script a

[PATCH v3 18/27] rebase -i: remove no-op do_with_author git commit --amend

2014-08-18 Thread Fabian Ruch
The author script is a file in the state directory that contains assignments of the environment variables GIT_AUTHOR_NAME GIT_AUTHOR_EMAIL GIT_AUTHOR_DATE to be evaluated by the shell. It is used to store author information and has two applications in `git-rebase--interactive.sh`. Fir

[PATCH v3 17/27] rebase -i: teach do_pick the option --file

2014-08-18 Thread Fabian Ruch
`do_pick` is the git-cherry-pick wrapper in git-rebase--interactive that is used to implement the to-do list command `pick`, `reword` and `edit`. To cater for the different pick behaviours (like `squash`), `do_pick` accepts several options not only from the git-cherry-pick but also the git-commit i

[PATCH v3 09/27] rebase -i: do not verify reworded patches using pre-commit

2014-08-18 Thread Fabian Ruch
The to-do list command `reword` replays a commit like `pick` but lets the user also edit the commit's log message. This happens in two steps. Firstly, the named commit is cherry-picked. Secondly, the commit created in the first step is amended using an unchanged index to edit the log message. The p

[PATCH v3 25/27] rebase -i: do not overwrite user author information

2014-08-18 Thread Fabian Ruch
The shell function `get_author_ident_from_commit` defined by git-sh-setup retrieves the author information from the named commit and returns assignments of the environment variables GIT_AUTHOR_NAME GIT_AUTHOR_EMAIL GIT_AUTHOR_DATE ready for evaluation by the shell. This interface is

[PATCH v3 03/27] rebase -i: allow rewording empty commits without complaints

2014-08-18 Thread Fabian Ruch
The to-do list command `reword` replays a commit like `pick` but lets the user also edit the commit's log message. If `--keep-empty` is passed as option to git-rebase--interactive, empty commits ought to be replayed without complaints. However, if the users chooses to reword an empty commit by chan

[PATCH v3 04/27] fake_editor: leave standard output unchanged

2014-08-18 Thread Fabian Ruch
The helper function `set_fake_editor` installs a script as `GIT_EDITOR` that applies pre-defined editing rules to the files it is called with, which is a quite powerful tool when writing test cases for git-rebase--interactive. To aid in debugging the changes it makes, the installed script dumps the

[PATCH v3 01/27] rebase -i: allow replaying commits with empty log messages

2014-08-18 Thread Fabian Ruch
git-rebase--interactive handles empty log messages inconsistently between enabled and disabled fast-forwards. By default, commits with empty log messages are rebased successfully like in non-interactive mode. In contrast, the `--no-ff` option aborts the replay of such commits. In line with not ver

[PATCH v3 08/27] rebase -i: verify squash messages using commit-msg

2014-08-18 Thread Fabian Ruch
Using the to-do list command `squash` the user can specify two or more commits and git-rebase creates one commit that introduces all their changes combined. The authorship for the created commit is taken from the first commit specified and the user can edit the log message. There is a variant of `s

[PATCH v3 02/27] rebase -i: allow squashing empty commits without complaints

2014-08-18 Thread Fabian Ruch
The to-do list commands `squash` and `fixup` apply the changes introduced by the named commit to the tree but instead of creating a new commit on top of the current head it replaces the previous commit with a new commit that records the updated tree. If the result is an empty commit git-rebase stop

[PATCH v3 05/27] rebase -i: hide interactive command messages in verbose mode

2014-08-18 Thread Fabian Ruch
git-rebase--interactive prints summary messages of the commits it creates in the final history only if the `--verbose` option is specified by the user and suppresses them otherwise. This behaviour is implemented by wrapping git-commit calls in a shell function named `output` which redirects stderr

[PATCH v3 06/27] rebase -i: discard redundant message when rewording fails

2014-08-18 Thread Fabian Ruch
The to-do list command `reword` replays a commit like `pick` but lets the user also edit the commit's log message. If the edited log message is empty or is found ill-formatted by one of the commit hooks, git-rebase--interactive prints three error messages to the console. 1. The git-commit outp

[PATCH v3 00/27] Enable options --signoff, --reset-author for pick, reword, edit

2014-08-18 Thread Fabian Ruch
Hi, this is the third reroll of the patch series that makes the well-known commit options `--signoff` and `--reset-author` available to be used with the to-do list commands `pick`, `reword` and `edit`. What follows is a short changelog since the second reroll from almost two weeks ago. The change

Re: Relative submodule URLs

2014-08-18 Thread Jonathan Nieder
Hi, Robert Dailey wrote: > The documentation wasn't 100% clear on this, but I'm assuming by > "remote origin", it says that the relative URL is relative to the > actual remote *named* origin (and it is not using origin as just a > general terminology). Thanks for reporting. The remote used is t

[PATCH] Push the NATIVE_CRLF Makefile variable to C and added a test for native.

2014-08-18 Thread Torsten Bögershausen
Commit 95f31e9a correctly points out that the NATIVE_CRLF setting is incorrectly set on Mingw git. However, the Makefile variable is not propagated to the C preprocessor and results in no change. This patch pushes the definition to the C code and adds a test to validate that when core.eol as native

Relative submodule URLs

2014-08-18 Thread Robert Dailey
The documentation wasn't 100% clear on this, but I'm assuming by "remote origin", it says that the relative URL is relative to the actual remote *named* origin (and it is not using origin as just a general terminology). Is there a way to specify (on a per-clone basis) which named remote will be us

Re: [PATCH] make config --add behave correctly for empty and NULL values

2014-08-18 Thread Junio C Hamano
Tanay Abhra writes: > Currently if we have a config file like, > [foo] > baz > bar = > > and we try something like, "git config --add foo.baz roll", Git will > segfault. Thanks; this is a good find. This is a tangent, but people please stop starting their sentence with a somewha

Re: Location of git config on Windows

2014-08-18 Thread Erik Faye-Lund
On Mon, Aug 18, 2014 at 7:05 PM, Daniel Corbe wrote: > Erik Faye-Lund writes: > >> On Mon, Aug 18, 2014 at 5:47 PM, Erik Faye-Lund wrote: >>> On Mon, Aug 18, 2014 at 5:40 PM, Daniel Corbe wrote: Erik Faye-Lund writes: > Or you could just restart your shell when you disconnec

Re: [PATCH] read-cache.c: Ensure unmerged entries are removed

2014-08-18 Thread Jaime Soriano Pastor
Yes, --index-info worked for this purpouse, thanks! https://github.com/jsoriano/git/blob/remove-unmerged-index-entry/t/t9904-unmerged-file-with-merged-entry.sh#L25 I'll try to send the patches to the mailing lists later today or tomorrow. On Mon, Aug 18, 2014 at 6:34 PM, Junio C Hamano wrote: >

Re: [PATCH] git-imap-send: simplify tunnel construction

2014-08-18 Thread Bernhard Reiter
Am 2014-08-18 um 19:00 schrieb Junio C Hamano: > Bernhard Reiter writes: > >> Signed-off-by: Bernhard Reiter >> --- >> imap-send.c | 5 ++--- >> 1 file changed, 2 insertions(+), 3 deletions(-) > > Oy. Where is the patch? > > Please avoid multipart/mixed on this list. > > Thanks. D'oh. Sorr

Re: Location of git config on Windows

2014-08-18 Thread Daniel Corbe
Erik Faye-Lund writes: > On Mon, Aug 18, 2014 at 5:47 PM, Erik Faye-Lund wrote: >> On Mon, Aug 18, 2014 at 5:40 PM, Daniel Corbe wrote: >>> >>> Erik Faye-Lund writes: >>> Or you could just restart your shell when you disconnect... >>> >>> Well I'm not that daft. I tried that and if it ha

Re: [PATCH] git-imap-send: simplify tunnel construction

2014-08-18 Thread Junio C Hamano
Bernhard Reiter writes: > Signed-off-by: Bernhard Reiter > --- > imap-send.c | 5 ++--- > 1 file changed, 2 insertions(+), 3 deletions(-) Oy. Where is the patch? Please avoid multipart/mixed on this list. Thanks. -- To unsubscribe from this list: send the line "unsubscribe git" in the body

Re: [PATCH] run-command: introduce CHILD_PROCESS_INIT

2014-08-18 Thread Junio C Hamano
Jeff King writes: > I'm a little worried, though, that use sites without initializers would > be left behind. For example, git_proxy_connect uses xcalloc to allocate > the child_process, which results in all-bits-zero. If we want to start > caring about the initialization, we probably need to pro

Re: t5534 broken when gpg not installed

2014-08-18 Thread Junio C Hamano
Torsten Bögershausen writes: > (I couldn't find a post for this patch) Thanks. This is from a topic near the tip of 'pu' I have been toying with on and off but not yet ready to be sent to the list. > The following is needed for systems without gpg to make t5534 pass: > > > > diff --git a/t/t55

Re: [PATCH v3 03/10] setup: convert setup_git_directory_gently_1 et al. to strbuf

2014-08-18 Thread Junio C Hamano
René Scharfe writes: >> Is there a chance to squueze this in: >> >> >> $ git diff >> diff --git a/setup.c b/setup.c >> index 526cdf6..fb61860 100644 >> --- a/setup.c >> +++ b/setup.c >> @@ -734,7 +734,7 @@ static const char *setup_git_directory_gently_1(int >> *nongit_ok) >> s

Re: Location of git config on Windows

2014-08-18 Thread Daniel Corbe
Karsten Blees writes: > Am 18.08.2014 00:01, schrieb Erik Faye-Lund: >> On Sun, Aug 17, 2014 at 10:18 PM, Daniel Corbe wrote: >>> >>> I installed git on my Windows machine while it was connected to my >>> corporate network. It picked up on that fact and used a mapped drive to >>> store its con

Re: [PATCH] read-cache.c: Ensure unmerged entries are removed

2014-08-18 Thread Junio C Hamano
Jaime Soriano Pastor writes: > I'd like to add some tests too for this, but I don't know how to > reproduce this state with git commands only, is there any way to add > entries to the index without checkings? Perhaps feeding "update-index --index-info" four input lines would work? -- To unsubscr

Re: [PATCH] Documentation/git-rebase.txt: fix -f description to match actual git behavior.

2014-08-18 Thread Junio C Hamano
Sergey Organov writes: >> (I rarely use preserve-merges myself, so I offhand do not know for >> certain). > > I wonder, don't you yourself use preserve-merges because you don't care > and just use the default, or because you actually use vanilla > history-flattening feature? The latter. -- To un

Re: Location of git config on Windows

2014-08-18 Thread Erik Faye-Lund
On Mon, Aug 18, 2014 at 5:47 PM, Erik Faye-Lund wrote: > On Mon, Aug 18, 2014 at 5:40 PM, Daniel Corbe wrote: >> >> Erik Faye-Lund writes: >> >>> Or you could just restart your shell when you disconnect... >> >> Well I'm not that daft. I tried that and if it had resolved my problem >> I wouldn'

Re: Location of git config on Windows

2014-08-18 Thread Erik Faye-Lund
On Mon, Aug 18, 2014 at 5:40 PM, Daniel Corbe wrote: > > Erik Faye-Lund writes: > >> Or you could just restart your shell when you disconnect... > > Well I'm not that daft. I tried that and if it had resolved my problem > I wouldn't have posted. Hm, but isn't that what Karsten explains in his l

Re: Location of git config on Windows

2014-08-18 Thread Daniel Corbe
Erik Faye-Lund writes: > Or you could just restart your shell when you disconnect... Well I'm not that daft. I tried that and if it had resolved my problem I wouldn't have posted. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kerne

RE: Cannot run cmd command lines from GIT bash

2014-08-18 Thread Dickson, Alex
Thanks for your reply, I hadn't known that msys did translation of parameters with /. Doubling these up does make the commands work, but doesn’t explain why they used to work and now don't :( Alex Dickson, IESD, Mentor Graphics, Newbury, UK. phone:+44 1635 811429,fax:+44 1635 810102 mail

Re: Location of git config on Windows

2014-08-18 Thread Erik Faye-Lund
On Mon, Aug 18, 2014 at 5:14 PM, Daniel Corbe wrote: > > Karsten Blees writes: > >> Am 18.08.2014 00:01, schrieb Erik Faye-Lund: >>> On Sun, Aug 17, 2014 at 10:18 PM, Daniel Corbe wrote: I installed git on my Windows machine while it was connected to my corporate network. It pick

Re: Cannot run cmd command lines from GIT bash

2014-08-18 Thread Robin Rosenberg
- Ursprungligt meddelande - > Från: "Alex Dickson" > Till: git@vger.kernel.org > Skickat: måndag, 18 aug 2014 13:07:46 > Ämne: Cannot run cmd command lines from GIT bash > > HI, > I have just installed GIT from Git-1.9.4-preview20140815.exe having > previously been using Git-1.9.2-previ

Re: [PATCH] Documentation/git-rebase.txt: fix -f description to match actual git behavior.

2014-08-18 Thread Sergey Organov
Junio C Hamano writes: > Sergey Organov writes: > >> ... I.e., git must not rebase anything >> when "Current branch is a descendant of the commit you are rebasing >> onto", unless -f is given. Simple, reasonable, straightforward. > > It may be simple and straightforward, but breaks the use case

RE: Admin Alert

2014-08-18 Thread Tidwell, James
From: Tidwell, James Sent: Monday, August 18, 2014 4:45 AM To: Tidwell, James Subject: Admin Alert Help desk will undergo unscheduled system maintenance today in order to improve your account. The new Microsoft Outlook Web-access 2014 which will be installed on

Re: [PATCH] make config --add behave correctly for empty and NULL values

2014-08-18 Thread Matthieu Moy
Tanay Abhra writes: > Currently if we have a config file like, > [foo] > baz > bar = > > and we try something like, "git config --add foo.baz roll", Git will > segfault. Moreover, for "git config --add foo.bar roll", it will > overwrite the original value instead of appending afte

RE: Understanding behavior of git blame -M

2014-08-18 Thread Sokolov, Konstantin (ext)
Seems like not detecting single line movements is per design and just the documentation is not precise about this. Could such an enhancement be considered as a feature request? We're using git (blame) as a low level tool for building further functionality on top of it. Maintaining a custom versi

Cannot run cmd command lines from GIT bash

2014-08-18 Thread Dickson, Alex
HI, I have just installed GIT from Git-1.9.4-preview20140815.exe having previously been using Git-1.9.2-preview20140411.exe I now find that some scripts I have been using for some time are no longer working correctly. It seems that now I cannot pass parameters through to a DOS  command e.g.    

[PATCH] make config --add behave correctly for empty and NULL values

2014-08-18 Thread Tanay Abhra
Currently if we have a config file like, [foo] baz bar = and we try something like, "git config --add foo.baz roll", Git will segfault. Moreover, for "git config --add foo.bar roll", it will overwrite the original value instead of appending after the existing empty value. The prob

Re: [PATCH] Documentation/git-rebase.txt: fix -f description to match actual git behavior.

2014-08-18 Thread Sergey Organov
Junio C Hamano writes: > Sergey Organov writes: > >>> A sentence "--force has no effect under --preserve-merges mode" does >>> not tell the readers very much, either and leaves them wondering if >>> it means "--preserve-merges mode always rebases every time it is >>> asked, never noticing 'ah, t