[PATCH v2 0/4] git remote improvements

2016-02-15 Thread Thomas Gummerer
Thanks Peff for the review on the previous round ($gmane/286214). The series now uses parse_config_key() instead of skip_prefix, and I added REMOTE_UNCONFIGURED to the enum used in the origin field in struct remote. Interdiff below: diff --git a/remote.c b/remote.c index 3a4ca9b..d10ae00 100644

Re: [PATCH v4 3/3] config: add '--show-origin' option to print the origin of a config value

2016-02-15 Thread Ramsay Jones
On 15/02/16 21:40, Jeff King wrote: > On Mon, Feb 15, 2016 at 09:36:23PM +, Ramsay Jones wrote: > >>> +test_expect_success '--show-origin stdin' ' >>> + cat >expect <<-\EOF && >>> + stdin: user.custom=true >> >> So, as with the previous patch, I think this should be: >>

[PATCH v2 2/4] remote: simplify remote_is_configured()

2016-02-15 Thread Thomas Gummerer
The remote_is_configured() function allows checking whether a remote exists or not. The function however only works if remote_get() wasn't called before calling it. In addition, it only checks the configuration for remotes, but not remotes or branches files. Make use of the origin member of

[PATCH v2 4/4] remote: use remote_is_configured() for add and rename

2016-02-15 Thread Thomas Gummerer
Both remote add and remote rename use a slightly different hand-rolled check if the remote exits. The hand-rolled check may have some subtle cases in which it might fail to detect when a remote already exists. One such case was fixed in fb86e32 ("git remote: allow adding remotes agreeing with

[PATCH v2 3/4] remote: actually check if remote exits

2016-02-15 Thread Thomas Gummerer
When converting the git remote command to a builtin in 211c89 ("Make git-remote a builtin"), a few calls to check if a remote exists were converted from: if (!exists $remote->{$name}) { [...] to: remote = remote_get(argv[1]); if (!remote) [...] The new

[PATCH v2 1/4] remote: use parse_config_key

2016-02-15 Thread Thomas Gummerer
95b567c7 ("use skip_prefix to avoid repeating strings") transformed calls using starts_with() and then skipping the length of the prefix to skip_prefix() calls. In remote.c there are a few calls like: if (starts_with(foo, "bar")) foo += 3 These calls weren't touched by the aformentioned

Re: [PATCH v2 4/4] remote: use remote_is_configured() for add and rename

2016-02-15 Thread Eric Sunshine
On Mon, Feb 15, 2016 at 5:39 PM, Thomas Gummerer wrote: > Both remote add and remote rename use a slightly different hand-rolled > check if the remote exits. The hand-rolled check may have some subtle > cases in which it might fail to detect when a remote already exists. >

Re: [PATCH v4 3/3] config: add '--show-origin' option to print the origin of a config value

2016-02-15 Thread Jeff King
On Mon, Feb 15, 2016 at 02:18:18PM -0800, Junio C Hamano wrote: > larsxschnei...@gmail.com writes: > > > +test_expect_success 'set up custom config file' ' > > + CUSTOM_CONFIG_FILE=$(printf "file\twith\ttabs.conf") && > > + cat >"$CUSTOM_CONFIG_FILE" <<-\EOF > > + [user] > > +

Re: [PATCH v2 1/4] remote: use parse_config_key

2016-02-15 Thread Jeff King
On Mon, Feb 15, 2016 at 11:39:41PM +0100, Thomas Gummerer wrote: > - if (!starts_with(key, "remote.")) > + if (parse_config_key(key, "remote", , , ) < 0) > return 0; > - name = key + 7; > > /* Handle remote.* variables */ > - if (!strcmp(name,

Re: [PATCH v2 4/4] remote: use remote_is_configured() for add and rename

2016-02-15 Thread Jeff King
On Mon, Feb 15, 2016 at 05:52:14PM -0500, Eric Sunshine wrote: > > diff --git a/t/t5505-remote.sh b/t/t5505-remote.sh > > @@ -157,6 +157,24 @@ test_expect_success 'rename errors out early when > > deleting non-existent branch' > > +test_expect_success 'add existing foreign_vcs remote' ' > > +

Re: [PATCH +warn] Implement https public key pinning

2016-02-15 Thread Junio C Hamano
Thanks. This, when applied on top of 2.7.1, however seems to break at least t5541 and t5551. -- 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 1/4] dir.c: fix match_pathname()

2016-02-15 Thread Junio C Hamano
Nguyễn Thái Ngọc Duy writes: > Given the pattern "1/2/3/4" and the path "1/2/3/4/f", the pattern > prefix is "1/2/3/4". We will compare and remove the prefix from both > pattern and path and come to this code > > /* >* If the whole pattern did not have a

Re: [PATCH 3/4] dir.c: support marking some patterns already matched

2016-02-15 Thread Junio C Hamano
Nguyễn Thái Ngọc Duy writes: > Given path "a" and the pattern "a", it's matched. But if we throw path > "a/b" to pattern "a", the code fails to realize that if "a" matches > "a" then "a/b" should also be matched. > > When the pattern is matched the first time, we can mark it

Re: [PATCH 0/4] .gitignore, reinclude rules, take 2

2016-02-15 Thread Junio C Hamano
Nguyễn Thái Ngọc Duy writes: > Take one was bad and reverted in commit 8c72236. Take two provides a > more complete solution to the pair of rules > > exclude/this > !exclude/this/except/this > > 3/4 should do a better job at stopping regressions in take 1. 4/4 > provides

Re: [PATCH 1/2] worktree: fix "add -B"

2016-02-15 Thread Junio C Hamano
Nguyễn Thái Ngọc Duy writes: > Current code does not update "symref" when -B is used. This string > contains the new HEAD. Because it's empty "git worktree add -B" fails at > symbolic-ref step. > > Because branch creation is already done before calling add_worktree(), > -B is

Re: [PATCH v2 1/4] remote: use parse_config_key

2016-02-15 Thread Thomas Gummerer
On 02/15, Jeff King wrote: > On Mon, Feb 15, 2016 at 11:39:41PM +0100, Thomas Gummerer wrote: > > > - if (!starts_with(key, "remote.")) > > + if (parse_config_key(key, "remote", , , ) < 0) > > return 0; > > - name = key + 7; > > > > /* Handle remote.* variables */ > > - if

Re: [PATCH v2 4/4] remote: use remote_is_configured() for add and rename

2016-02-15 Thread Thomas Gummerer
On 02/15, Jeff King wrote: > On Mon, Feb 15, 2016 at 05:52:14PM -0500, Eric Sunshine wrote: > > > > diff --git a/t/t5505-remote.sh b/t/t5505-remote.sh > > > @@ -157,6 +157,24 @@ test_expect_success 'rename errors out early when > > > deleting non-existent branch' > > > +test_expect_success 'add

[PATCH] merge-recursive: option to disable renames

2016-02-15 Thread Felipe Gonçalves Assis
The recursive strategy turns on rename detection by default. Add a strategy option to disable rename detection even for exact renames. Signed-off-by: Felipe Gonçalves Assis --- Hi, this is a patch relative to the "Custom merge driver with no rename detection" thread,

Re: Custom merge driver with no rename detection

2016-02-15 Thread Felipe Gonçalves Assis
On 15 February 2016 at 09:03, Junio C Hamano wrote: > Felipe Gonçalves Assis writes: > >> However, if you do find this approach acceptable/desirable >> (rename-threshold > 100%), I can work on the issues pointed out and >> propose a proper patch. > >

[PATCH] merge_blobs: use strbuf instead of manually-sized mmfile_t

2016-02-15 Thread Jeff King
On Mon, Feb 15, 2016 at 10:39:39PM +0100, Stefan Frühwirth wrote: > in one specific circumstance, git-merge-tree exits with a segfault caused by > "*** Error in `git': malloc(): memory corruption (fast)": > > There has to be at least one commit first (as far as I can tell it doesn't > matter

Re: [PATCH 1/2] worktree: fix "add -B"

2016-02-15 Thread Duy Nguyen
On Tue, Feb 16, 2016 at 6:53 AM, Junio C Hamano wrote: > Nguyễn Thái Ngọc Duy writes: > >> Current code does not update "symref" when -B is used. This string >> contains the new HEAD. Because it's empty "git worktree add -B" fails at >> symbolic-ref step.

Re: [PATCH 1/4] dir.c: fix match_pathname()

2016-02-15 Thread Duy Nguyen
On Tue, Feb 16, 2016 at 6:29 AM, Junio C Hamano wrote: > Nguyễn Thái Ngọc Duy writes: > >> Given the pattern "1/2/3/4" and the path "1/2/3/4/f", the pattern >> prefix is "1/2/3/4". We will compare and remove the prefix from both >> pattern and path and come

Re: [PATCH +warn] Implement https public key pinning

2016-02-15 Thread Jeff King
On Mon, Feb 15, 2016 at 03:25:32PM -0800, Junio C Hamano wrote: > Thanks. This, when applied on top of 2.7.1, however seems to break > at least t5541 and t5551. Hrm. I cannot see how the new code can possibly do anything unless http.pinnedpubkey is set, and our tests don't do that. Neither

Git Submodule auto-update

2016-02-15 Thread Cameron W
I apologize if this is a dumb or repeated question. Is there a way to have a submodule automatically 'update' on pull of the parent repository, WITHOUT requiring each user/committer to change any settings (hooks or git config aliases)? Ideally, a setting I can change at the repository level

Re: [PATCH 3/4] dir.c: support marking some patterns already matched

2016-02-15 Thread Duy Nguyen
On Tue, Feb 16, 2016 at 6:47 AM, Junio C Hamano wrote: > Nguyễn Thái Ngọc Duy writes: > >> Given path "a" and the pattern "a", it's matched. But if we throw path >> "a/b" to pattern "a", the code fails to realize that if "a" matches >> "a" then "a/b" should

Re: [PATCH 04/18] add helpers for allocating flex-array structs

2016-02-15 Thread Eric Sunshine
On Mon, Feb 15, 2016 at 4:50 PM, Jeff King wrote: > Allocating a struct with a flex array is pretty simple in > practice: you over-allocate the struct, then copy some data > into the over-allocation. But it can be a slight pain to > make sure you're allocating and copying the right

Re: [PATCH 07/18] convert trivial cases to FLEX_ARRAY macros

2016-02-15 Thread Eric Sunshine
On Mon, Feb 15, 2016 at 4:52 PM, Jeff King wrote: > Using FLEX_ARRAY macros reduces the amount of manual > computation size we have to do. It also ensures we don't > overflow size_t, and it makes sure we write the same number > of bytes that we allocated. > > Signed-off-by: Jeff

[PATCH] wt-status.c: set commitable bit if there is a meaningful merge.

2016-02-15 Thread Stephen P. Smith
The 'commit --dry-run' and commit return values differed if a conflicted merge had been resolved and the commit would be the same as the parent. Update show_merge_in_progress to set the commitable bit if conflicts have been resolved and a merge is in progress. Signed-off-by: Stephen P. Smith

Re: [PATCH 04/18] add helpers for allocating flex-array structs

2016-02-15 Thread Jeff King
On Mon, Feb 15, 2016 at 08:47:30PM -0500, Eric Sunshine wrote: > > This patch adds a few helpers to turn simple cases of into a > > Grammo: "cases of into" Oops. Cases of "flex-array struct allocation into...". > > + * and "name" will point to a block of memory after the struct, which will >

Re: [PATCH 07/18] convert trivial cases to FLEX_ARRAY macros

2016-02-15 Thread Jeff King
On Mon, Feb 15, 2016 at 09:17:05PM -0500, Eric Sunshine wrote: > > --- > > diff --git a/builtin/reflog.c b/builtin/reflog.c > > @@ -412,8 +410,7 @@ static struct reflog_expire_cfg *find_cfg_ent(const > > char *pattern, size_t len) > > !memcmp(ent->pattern, pattern, len)) > >

Re: [PATCH +warn] Implement https public key pinning

2016-02-15 Thread Junio C Hamano
Jeff King writes: > On Mon, Feb 15, 2016 at 03:25:32PM -0800, Junio C Hamano wrote: > >> Thanks. This, when applied on top of 2.7.1, however seems to break >> at least t5541 and t5551. > > Hrm. I cannot see how the new code can possibly do anything unless > http.pinnedpubkey is

Re: [PATCH 07/18] convert trivial cases to FLEX_ARRAY macros

2016-02-15 Thread Jeff King
On Mon, Feb 15, 2016 at 10:15:54PM -0500, Jeff King wrote: > > Answering my own question: Looking at reflog_expire_config() and > > parse_config_key(), I gather that 'len' already accounts for the NUL, > > thus the new code is overallocating (which should not be a problem). > > Actually, I think

Re: [PATCH +warn] Implement https public key pinning

2016-02-15 Thread Jeff King
On Mon, Feb 15, 2016 at 07:19:07PM -0800, Junio C Hamano wrote: > I suspect that "#else" is too agressive to bail out or something > silly like that. > > Oh, I think I found it. > > @@ -216,6 +219,13 @@ static int http_options(const char *var, const char > *value, void *cb) > if

Re: [PULL] svn pathnameencoding for git svn dcommit

2016-02-15 Thread Kazutoshi Satoda
On 2016/02/15 9:52 +0900, Eric Wong wrote: > I've amended tests to both commits, but the URL encoding one > requires an HTTP server to test effectively. Thank you for the tests. But, on my environment, both of them failed unexpectedly. (Windows 7 SP1, x86_64 Cygwin, LANG=ja_JP.UTF-8) For now, I

Re: [PATCH 07/18] convert trivial cases to FLEX_ARRAY macros

2016-02-15 Thread Jeff King
On Mon, Feb 15, 2016 at 10:26:26PM -0500, Jeff King wrote: > We could do this on top of my series (I can also factor out the fix > separately to go at the beginning if we don't want to hold the bugfix > hostage). > > -- >8 -- > Subject: [PATCH] reflog_expire_cfg: drop misleading "len" parameter

Re: [PATCH 07/18] convert trivial cases to FLEX_ARRAY macros

2016-02-15 Thread Eric Sunshine
On Mon, Feb 15, 2016 at 10:15 PM, Jeff King wrote: > On Mon, Feb 15, 2016 at 09:17:05PM -0500, Eric Sunshine wrote: >> > - ent = xcalloc(1, (sizeof(*ent) + len)); >> > - memcpy(ent->pattern, pattern, len); >> > + FLEX_ALLOC_MEM(ent, pattern, pattern, len); >> >>

Re: [PATCH 07/18] convert trivial cases to FLEX_ARRAY macros

2016-02-15 Thread Eric Sunshine
On Mon, Feb 15, 2016 at 10:36 PM, Jeff King wrote: > On Mon, Feb 15, 2016 at 10:26:26PM -0500, Jeff King wrote: >> We could do this on top of my series (I can also factor out the fix >> separately to go at the beginning if we don't want to hold the bugfix >> hostage). >> >> -- >8

Re: [PATCH 05/18] convert trivial cases to ALLOC_ARRAY

2016-02-15 Thread Eric Sunshine
On Mon, Feb 15, 2016 at 4:51 PM, Jeff King wrote: > Each of these cases can be converted to use ALLOC_ARRAY or > REALLOC_ARRAY, which has two advantages: > > 1. It automatically checks the array-size multiplication > for overflow. > > 2. It always uses sizeof(*array) for

Re: [PATCH 07/18] convert trivial cases to FLEX_ARRAY macros

2016-02-15 Thread Jeff King
On Mon, Feb 15, 2016 at 11:18:56PM -0500, Eric Sunshine wrote: > > diff --git a/builtin/reflog.c b/builtin/reflog.c > > @@ -408,13 +407,12 @@ static struct reflog_expire_cfg *find_cfg_ent(const > > char *pattern, size_t len) > > reflog_expire_cfg_tail = _expire_cfg; > > > >

Re: [PATCH 05/18] convert trivial cases to ALLOC_ARRAY

2016-02-15 Thread Jeff King
On Mon, Feb 15, 2016 at 11:22:12PM -0500, Eric Sunshine wrote: > On Mon, Feb 15, 2016 at 4:51 PM, Jeff King wrote: > > Each of these cases can be converted to use ALLOC_ARRAY or > > REALLOC_ARRAY, which has two advantages: > > > > 1. It automatically checks the array-size

Re: [PATCH 05/18] convert trivial cases to ALLOC_ARRAY

2016-02-15 Thread Eric Sunshine
On Mon, Feb 15, 2016 at 11:23 PM, Jeff King wrote: > On Mon, Feb 15, 2016 at 11:22:12PM -0500, Eric Sunshine wrote: >> On Mon, Feb 15, 2016 at 4:51 PM, Jeff King wrote: >> > - path = xmalloc((n+1)*sizeof(char *)); >> > + ALLOC_ARRAY(path, n+1); >> >>

Re: [PATCH] merge_blobs: use strbuf instead of manually-sized mmfile_t

2016-02-15 Thread Eric Sunshine
On Mon, Feb 15, 2016 at 08:12:58PM -0500, Jeff King wrote: > On Mon, Feb 15, 2016 at 10:39:39PM +0100, Stefan Frühwirth wrote: > > in one specific circumstance, git-merge-tree exits with a segfault caused by > > "*** Error in `git': malloc(): memory corruption (fast)": > > > > There is a test

Re: [PATCH 05/18] convert trivial cases to ALLOC_ARRAY

2016-02-15 Thread Jeff King
On Mon, Feb 15, 2016 at 11:32:25PM -0500, Eric Sunshine wrote: > On Mon, Feb 15, 2016 at 11:23 PM, Jeff King wrote: > > On Mon, Feb 15, 2016 at 11:22:12PM -0500, Eric Sunshine wrote: > >> On Mon, Feb 15, 2016 at 4:51 PM, Jeff King wrote: > >> > - path =

Re: [PATCH 08/18] use st_add and st_mult for allocation size computation

2016-02-15 Thread Eric Sunshine
On Mon, Feb 15, 2016 at 4:53 PM, Jeff King wrote: > If our size computation overflows size_t, we may allocate a > much smaller buffer than we expected and overflow it. It's > probably impossible to trigger an overflow in most of these > sites in practice, but it is easy enough

Re: [PATCH] merge_blobs: use strbuf instead of manually-sized mmfile_t

2016-02-15 Thread Jeff King
On Tue, Feb 16, 2016 at 12:09:15AM -0500, Eric Sunshine wrote: > > - ecb.priv = res; > > - return xdi_diff(f1, f2, , , ); > > + res->size = out.len; /* avoid long/size_t pointer mismatch below */ > > It took a minute or two for me to realize that "mismatch below" was > talking about the

Re: [PATCH 13/18] sequencer: simplify memory allocation of get_message

2016-02-15 Thread Eric Sunshine
On Mon, Feb 15, 2016 at 4:56 PM, Jeff King wrote: > For a commit with has "1234abcd" and subject "foo", this Did you mean s/with has/which has ID/ or something? > function produces a struct with three strings: > > 1. "foo" > > 2. "1234abcd... foo" > > 3. "parent of 1234abcd...

Re: [PATCH 14/18] git-compat-util: drop mempcpy compat code

2016-02-15 Thread Eric Sunshine
On Mon, Feb 15, 2016 at 4:56 PM, Jeff King wrote: > There are no callers of this left, as the last one was > dropped in the previous patch. And there are no likely to be s/no/not > new ones, as the function has been around since 2010 without > gaining any new callers. > >

Re: [PULL] svn pathnameencoding for git svn dcommit

2016-02-15 Thread Eric Wong
Junio, sorry about basing on next, I somehow thought I was going to need to depend on something there. Updated pull below if Kazutoshi can run the test effectively. Kazutoshi Satoda wrote: > Thank you for the tests. But, on my environment, both of them failed >

<    1   2