Re: [PATCH v5 15/15] config: rename git_config_set_or_die to git_config_set

2016-02-17 Thread Michael Blume
On Wed, Feb 17, 2016 at 12:57 PM, Michael Blume <blume.m...@gmail.com> wrote:
> On Tue, Feb 16, 2016 at 4:56 AM, Patrick Steinhardt <p...@pks.im> wrote:
>> Rename git_config_set_or_die functions to git_config_set, leading
>> to the new default behavior of dying whenever a configuration
>> error occurs.
>>
>> By now all callers that shall die on error have been transitioned
>> to the _or_die variants, thus making this patch a simple rename
>> of the functions.
>>
>> Signed-off-by: Patrick Steinhardt <p...@pks.im>
>> ---
>>  builtin/branch.c|  6 +++---
>>  builtin/clone.c |  8 
>>  builtin/init-db.c   | 20 ++--
>>  builtin/remote.c| 32 
>>  builtin/submodule--helper.c |  4 ++--
>>  cache.h |  8 
>>  config.c| 24 
>>  sequencer.c | 22 +++---
>>  submodule.c |  6 +++---
>>  9 files changed, 65 insertions(+), 65 deletions(-)
>>
>> diff --git a/builtin/branch.c b/builtin/branch.c
>> index c043cfc..7b45b6b 100644
>> --- a/builtin/branch.c
>> +++ b/builtin/branch.c
>> @@ -594,7 +594,7 @@ static int edit_branch_description(const char 
>> *branch_name)
>> strbuf_stripspace(, 1);
>>
>> strbuf_addf(, "branch.%s.description", branch_name);
>> -   git_config_set_or_die(name.buf, buf.len ? buf.buf : NULL);
>> +   git_config_set(name.buf, buf.len ? buf.buf : NULL);
>> strbuf_release();
>> strbuf_release();
>>
>> @@ -790,10 +790,10 @@ int cmd_branch(int argc, const char **argv, const char 
>> *prefix)
>> die(_("Branch '%s' has no upstream information"), 
>> branch->name);
>>
>> strbuf_addf(, "branch.%s.remote", branch->name);
>> -   git_config_set_multivar_or_die(buf.buf, NULL, NULL, 1);
>> +   git_config_set_multivar(buf.buf, NULL, NULL, 1);
>> strbuf_reset();
>> strbuf_addf(, "branch.%s.merge", branch->name);
>> -   git_config_set_multivar_or_die(buf.buf, NULL, NULL, 1);
>> +   git_config_set_multivar(buf.buf, NULL, NULL, 1);
>> strbuf_release();
>> } else if (argc > 0 && argc <= 2) {
>> struct branch *branch = branch_get(argv[0]);
>> diff --git a/builtin/clone.c b/builtin/clone.c
>> index 38094d4..b47c73f 100644
>> --- a/builtin/clone.c
>> +++ b/builtin/clone.c
>> @@ -786,12 +786,12 @@ static void write_refspec_config(const char 
>> *src_ref_prefix,
>> /* Configure the remote */
>> if (value.len) {
>> strbuf_addf(, "remote.%s.fetch", option_origin);
>> -   git_config_set_multivar_or_die(key.buf, value.buf, 
>> "^$", 0);
>> +   git_config_set_multivar(key.buf, value.buf, "^$", 0);
>> strbuf_reset();
>>
>> if (option_mirror) {
>> strbuf_addf(, "remote.%s.mirror", 
>> option_origin);
>> -   git_config_set_or_die(key.buf, "true");
>> +   git_config_set(key.buf, "true");
>> strbuf_reset();
>> }
>> }
>> @@ -949,14 +949,14 @@ int cmd_clone(int argc, const char **argv, const char 
>> *prefix)
>> src_ref_prefix = "refs/";
>> strbuf_addstr(_top, src_ref_prefix);
>>
>> -   git_config_set_or_die("core.bare", "true");
>> +   git_config_set("core.bare", "true");
>> } else {
>> strbuf_addf(_top, "refs/remotes/%s/", option_origin);
>> }
>>
>> strbuf_addf(, "+%s*:%s*", src_ref_prefix, branch_top.buf);
>> strbuf_addf(, "remote.%s.url", option_origin);
>> -   git_config_set_or_die(key.buf, repo);
>> +   git_config_set(key.buf, repo);
>> strbuf_reset();
>>
>> if (option_reference.nr)
>> diff --git a/builtin/init-db.c b/builtin/init-db.c
>> index ef19048..6223b7d 100644
>> --- a/builtin/init-db.c
>> +++ b/builtin/init-

Re: [PATCH v5 15/15] config: rename git_config_set_or_die to git_config_set

2016-02-17 Thread Michael Blume
On Tue, Feb 16, 2016 at 4:56 AM, Patrick Steinhardt  wrote:
> Rename git_config_set_or_die functions to git_config_set, leading
> to the new default behavior of dying whenever a configuration
> error occurs.
>
> By now all callers that shall die on error have been transitioned
> to the _or_die variants, thus making this patch a simple rename
> of the functions.
>
> Signed-off-by: Patrick Steinhardt 
> ---
>  builtin/branch.c|  6 +++---
>  builtin/clone.c |  8 
>  builtin/init-db.c   | 20 ++--
>  builtin/remote.c| 32 
>  builtin/submodule--helper.c |  4 ++--
>  cache.h |  8 
>  config.c| 24 
>  sequencer.c | 22 +++---
>  submodule.c |  6 +++---
>  9 files changed, 65 insertions(+), 65 deletions(-)
>
> diff --git a/builtin/branch.c b/builtin/branch.c
> index c043cfc..7b45b6b 100644
> --- a/builtin/branch.c
> +++ b/builtin/branch.c
> @@ -594,7 +594,7 @@ static int edit_branch_description(const char 
> *branch_name)
> strbuf_stripspace(, 1);
>
> strbuf_addf(, "branch.%s.description", branch_name);
> -   git_config_set_or_die(name.buf, buf.len ? buf.buf : NULL);
> +   git_config_set(name.buf, buf.len ? buf.buf : NULL);
> strbuf_release();
> strbuf_release();
>
> @@ -790,10 +790,10 @@ int cmd_branch(int argc, const char **argv, const char 
> *prefix)
> die(_("Branch '%s' has no upstream information"), 
> branch->name);
>
> strbuf_addf(, "branch.%s.remote", branch->name);
> -   git_config_set_multivar_or_die(buf.buf, NULL, NULL, 1);
> +   git_config_set_multivar(buf.buf, NULL, NULL, 1);
> strbuf_reset();
> strbuf_addf(, "branch.%s.merge", branch->name);
> -   git_config_set_multivar_or_die(buf.buf, NULL, NULL, 1);
> +   git_config_set_multivar(buf.buf, NULL, NULL, 1);
> strbuf_release();
> } else if (argc > 0 && argc <= 2) {
> struct branch *branch = branch_get(argv[0]);
> diff --git a/builtin/clone.c b/builtin/clone.c
> index 38094d4..b47c73f 100644
> --- a/builtin/clone.c
> +++ b/builtin/clone.c
> @@ -786,12 +786,12 @@ static void write_refspec_config(const char 
> *src_ref_prefix,
> /* Configure the remote */
> if (value.len) {
> strbuf_addf(, "remote.%s.fetch", option_origin);
> -   git_config_set_multivar_or_die(key.buf, value.buf, 
> "^$", 0);
> +   git_config_set_multivar(key.buf, value.buf, "^$", 0);
> strbuf_reset();
>
> if (option_mirror) {
> strbuf_addf(, "remote.%s.mirror", 
> option_origin);
> -   git_config_set_or_die(key.buf, "true");
> +   git_config_set(key.buf, "true");
> strbuf_reset();
> }
> }
> @@ -949,14 +949,14 @@ int cmd_clone(int argc, const char **argv, const char 
> *prefix)
> src_ref_prefix = "refs/";
> strbuf_addstr(_top, src_ref_prefix);
>
> -   git_config_set_or_die("core.bare", "true");
> +   git_config_set("core.bare", "true");
> } else {
> strbuf_addf(_top, "refs/remotes/%s/", option_origin);
> }
>
> strbuf_addf(, "+%s*:%s*", src_ref_prefix, branch_top.buf);
> strbuf_addf(, "remote.%s.url", option_origin);
> -   git_config_set_or_die(key.buf, repo);
> +   git_config_set(key.buf, repo);
> strbuf_reset();
>
> if (option_reference.nr)
> diff --git a/builtin/init-db.c b/builtin/init-db.c
> index ef19048..6223b7d 100644
> --- a/builtin/init-db.c
> +++ b/builtin/init-db.c
> @@ -227,7 +227,7 @@ static int create_default_files(const char *template_path)
> /* This forces creation of new config file */
> xsnprintf(repo_version_string, sizeof(repo_version_string),
>   "%d", GIT_REPO_VERSION);
> -   git_config_set_or_die("core.repositoryformatversion", 
> repo_version_string);
> +   git_config_set("core.repositoryformatversion", repo_version_string);
>
> /* Check filemode trustability */
> path = git_path_buf(, "config");
> @@ -241,18 +241,18 @@ static int create_default_files(const char 
> *template_path)
> if (filemode && !reinit && (st1.st_mode & S_IXUSR))
> filemode = 0;
> }
> -   git_config_set_or_die("core.filemode", filemode ? "true" : "false");
> +   git_config_set("core.filemode", filemode ? "true" : "false");
>
> if (is_bare_repository())
> -   git_config_set_or_die("core.bare", 

Re: AW: [PATCH 1/2] stash--helper: implement "git stash--helper"

2016-02-01 Thread Michael Blume
On Fri, Jan 29, 2016 at 11:58 AM, Junio C Hamano  wrote:
> Matthias Aßhauer  writes:
>
> [administrivia: please wrap your lines to reasonable lengths]
>
>>> Honestly, I had high hopes after seeing the "we are rewriting it
>>> in C" but I am not enthused after seeing this.  I was hoping that
>>> the rewritten version would do this all in-core, by calling these
>>> functions that we already have:
>>
>> These functions might be obvious to you, but I'm new to git's
>> source code, ...
>
> Ahh, I didn't realize I was talking with somebody unfamiliar with
> the codebase.  Apologies.
>
> Nevertheless, the list of functions I gave are a good starting
> point; they are widely used building blocks in the codebase.
>
>> I'll be working on a v2 that incorporates the feedback from you,
>> Thomas Gummerer and Stefan Beller then. Further feedback is of
>> course welcome.
>
> 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

Maybe this isn't important given that it looks like the patch is going
to be rewritten, but I have

stash.c:43:18: warning: incompatible pointer types assigning to 'const
char *const *' from 'const char *'; take the address with &
[-Wincompatible-pointer-types]
write_tree.env = prefix;
--
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/2] rebase: fix preserving commits with --keep-empty

2015-12-10 Thread Michael Blume
This test does not seem to pass on my mac.

I've placed the verbose output here:
https://gist.github.com/MichaelBlume/db7ba222be001d502e57

On Fri, Nov 20, 2015 at 4:04 AM, Patrick Steinhardt  wrote:
> When rebasing commits where one or several commits are redundant
> to commits on the branch that is being rebased upon we error out.
> This is due to the usage of `--allow-empty` for the invoked
> cherry-pick command, which will only cause _empty_ commits to be
> picked instead of also allowing redundant commits. As
> git-rebase(1) mentions, though, we also want to keep commits that
> do not change anything from its parents, that is also redundant
> commits.
>
> Fix this by invoking `git cherry-pick --keep-redundant-commits`
> instead, which will cause redundant commits to be rebased
> correctly.
>
> Signed-off-by: Patrick Steinhardt 
> ---
>  git-rebase--am.sh | 2 +-
>  t/t3400-rebase.sh | 2 +-
>  2 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/git-rebase--am.sh b/git-rebase--am.sh
> index 9ae898b..ea7b897 100644
> --- a/git-rebase--am.sh
> +++ b/git-rebase--am.sh
> @@ -44,7 +44,7 @@ then
> # empty commits and even if it didn't the format doesn't really lend
> # itself well to recording empty patches.  fortunately, cherry-pick
> # makes this easy
> -   git cherry-pick ${gpg_sign_opt:+"$gpg_sign_opt"} --allow-empty \
> +   git cherry-pick ${gpg_sign_opt:+"$gpg_sign_opt"} 
> --keep-redundant-commits \
> --right-only "$revisions" \
> ${restrict_revision+^$restrict_revision}
> ret=$?
> diff --git a/t/t3400-rebase.sh b/t/t3400-rebase.sh
> index 6cca319..f43b202 100755
> --- a/t/t3400-rebase.sh
> +++ b/t/t3400-rebase.sh
> @@ -255,7 +255,7 @@ test_expect_success 'rebase commit with an ancient 
> timestamp' '
> grep "author .* 34567 +0600$" actual
>  '
>
> -test_expect_failure 'rebase duplicated commit with --keep-empty' '
> +test_expect_success 'rebase duplicated commit with --keep-empty' '
> git reset --hard &&
> git checkout master &&
>
> --
> 2.6.3
>
> --
> 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: [PATCH v2 34/43] refs.c: make struct ref_transaction generic

2015-10-06 Thread Michael Blume
This triggers a lot of build warnings on my mac, basically in every
file that uses refs.h:

CC archive.o
In file included from archive.c:2:
./refs.h:635:16: warning: redefinition of typedef
'ref_transaction_free_fn' is a C11 feature [-Wtypedef-redefinition]
typedef void (*ref_transaction_free_fn)(struct ref_transaction *transaction);
   ^
./refs.h:613:16: note: previous definition is here
typedef void (*ref_transaction_free_fn)(struct ref_transaction *transaction);
   ^
1 warning generated.

On Mon, Sep 28, 2015 at 3:02 PM, David Turner  wrote:
> Alternate ref backends might need different data for transactions.  Make
> struct ref_transaction an empty struct, and let backends define their
> own structs which extend it.
>
> Signed-off-by: David Turner 
> ---
>  refs-be-files.c | 24 +---
>  refs.h  |  8 ++--
>  2 files changed, 23 insertions(+), 9 deletions(-)
>
> diff --git a/refs-be-files.c b/refs-be-files.c
> index 0a76c8e..3f2d194 100644
> --- a/refs-be-files.c
> +++ b/refs-be-files.c
> @@ -3218,7 +3218,8 @@ enum ref_transaction_state {
>   * consist of checks and updates to multiple references, carried out
>   * as atomically as possible.  This structure is opaque to callers.
>   */
> -struct ref_transaction {
> +struct files_ref_transaction {
> +   struct ref_transaction base;
> struct ref_update **updates;
> size_t alloc;
> size_t nr;
> @@ -3229,13 +3230,16 @@ static struct ref_transaction 
> *files_transaction_begin(struct strbuf *err)
>  {
> assert(err);
>
> -   return xcalloc(1, sizeof(struct ref_transaction));
> +   return xcalloc(1, sizeof(struct files_ref_transaction));
>  }
>
> -static void files_transaction_free(struct ref_transaction *transaction)
> +static void files_transaction_free(struct ref_transaction *trans)
>  {
> int i;
>
> +   struct files_ref_transaction *transaction =
> +   (struct files_ref_transaction *)trans;
> +
> if (!transaction)
> return;
>
> @@ -3247,7 +3251,7 @@ static void files_transaction_free(struct 
> ref_transaction *transaction)
> free(transaction);
>  }
>
> -static struct ref_update *add_update(struct ref_transaction *transaction,
> +static struct ref_update *add_update(struct files_ref_transaction 
> *transaction,
>  const char *refname)
>  {
> size_t len = strlen(refname) + 1;
> @@ -3259,7 +3263,7 @@ static struct ref_update *add_update(struct 
> ref_transaction *transaction,
> return update;
>  }
>
> -static int files_transaction_update(struct ref_transaction *transaction,
> +static int files_transaction_update(struct ref_transaction *trans,
>   const char *refname,
>   const unsigned char *new_sha1,
>   const unsigned char *old_sha1,
> @@ -3267,6 +3271,8 @@ static int files_transaction_update(struct 
> ref_transaction *transaction,
>   struct strbuf *err)
>  {
> struct ref_update *update;
> +   struct files_ref_transaction *transaction =
> +   (struct files_ref_transaction *)trans;
>
> assert(err);
>
> @@ -3350,10 +3356,12 @@ static int ref_update_reject_duplicates(struct 
> string_list *refnames,
> return 0;
>  }
>
> -static int files_transaction_commit(struct ref_transaction *transaction,
> +static int files_transaction_commit(struct ref_transaction *trans,
>   struct strbuf *err)
>  {
> int ret = 0, i;
> +   struct files_ref_transaction *transaction =
> +   (struct files_ref_transaction *)trans;
> int n = transaction->nr;
> struct ref_update **updates = transaction->updates;
> struct string_list refs_to_delete = STRING_LIST_INIT_NODUP;
> @@ -3517,10 +3525,12 @@ static int ref_present(const char *refname,
> return string_list_has_string(affected_refnames, refname);
>  }
>
> -static int files_initial_transaction_commit(struct ref_transaction 
> *transaction,
> +static int files_initial_transaction_commit(struct ref_transaction *trans,
> struct strbuf *err)
>  {
> int ret = 0, i;
> +   struct files_ref_transaction *transaction =
> +   (struct files_ref_transaction *)trans;
> int n = transaction->nr;
> struct ref_update **updates = transaction->updates;
> struct string_list affected_refnames = STRING_LIST_INIT_NODUP;
> diff --git a/refs.h b/refs.h
> index 64dba64..02001ef 100644
> --- a/refs.h
> +++ b/refs.h
> @@ -130,7 +130,7 @@ extern int dwim_log(const char *str, int len, unsigned 
> char *sha1, char **ref);
>   *
>   * Calling sequence
>   * 
> - * - Allocate and initialize a `struct ref_transaction` by calling
> + * - Allocate and 

Re: [PATCH 41/68] init: use strbufs to store paths

2015-09-29 Thread Michael Blume
On Thu, Sep 24, 2015 at 2:07 PM, Jeff King  wrote:
> The init code predates strbufs, and uses PATH_MAX-sized
> buffers along with many manual checks on intermediate sizes
> (some of which make magic assumptions, such as that init
> will not create a path inside .git longer than 50
> characters).
>
> We can simplify this greatly by using strbufs, which drops
> some hard-to-verify strcpy calls.  Note that we need to
> update probe_utf8_pathname_composition, too, as it assumes
> we are passing a buffer large enough to append its probe
> filenames (it now just takes a strbuf, which also gets rid
> of the confusing "len" parameter, which was not the length of
> "path" but rather the offset to start writing).
>
> Some of the conversion makes new calls to git_path_buf.
> While we're in the area, let's also convert existing calls
> to git_path to the safer git_path_buf (our existing calls
> were passed to pretty tame functions, and so were not a
> problem, but it's easy to be consistent and safe here).
>
> Note that we had an explicit test that "git init" rejects
> long template directories. This comes from 32d1776 (init: Do
> not segfault on big GIT_TEMPLATE_DIR environment variable,
> 2009-04-18). We can drop the test_must_fail here, as we now
> accept this and need only confirm that we don't segfault,
> which was the original point of the test.
>
> Signed-off-by: Jeff King 
> ---
>  builtin/init-db.c| 174 
> ---
>  compat/precompose_utf8.c |  12 ++--
>  compat/precompose_utf8.h |   2 +-
>  git-compat-util.h|   2 +-
>  t/t0001-init.sh  |   4 +-
>  5 files changed, 87 insertions(+), 107 deletions(-)
>
> diff --git a/builtin/init-db.c b/builtin/init-db.c
> index e7d0e31..cf6a3c8 100644
> --- a/builtin/init-db.c
> +++ b/builtin/init-db.c
> @@ -36,10 +36,11 @@ static void safe_create_dir(const char *dir, int share)
> die(_("Could not make %s writable by group"), dir);
>  }
>
> -static void copy_templates_1(char *path, int baselen,
> -char *template, int template_baselen,
> +static void copy_templates_1(struct strbuf *path, struct strbuf *template,
>  DIR *dir)
>  {
> +   size_t path_baselen = path->len;
> +   size_t template_baselen = template->len;
> struct dirent *de;
>
> /* Note: if ".git/hooks" file exists in the repository being
> @@ -49,77 +50,64 @@ static void copy_templates_1(char *path, int baselen,
>  * with the way the namespace under .git/ is organized, should
>  * be really carefully chosen.
>  */
> -   safe_create_dir(path, 1);
> +   safe_create_dir(path->buf, 1);
> while ((de = readdir(dir)) != NULL) {
> struct stat st_git, st_template;
> -   int namelen;
> int exists = 0;
>
> +   strbuf_setlen(path, path_baselen);
> +   strbuf_setlen(template, template_baselen);
> +
> if (de->d_name[0] == '.')
> continue;
> -   namelen = strlen(de->d_name);
> -   if ((PATH_MAX <= baselen + namelen) ||
> -   (PATH_MAX <= template_baselen + namelen))
> -   die(_("insanely long template name %s"), de->d_name);
> -   memcpy(path + baselen, de->d_name, namelen+1);
> -   memcpy(template + template_baselen, de->d_name, namelen+1);
> -   if (lstat(path, _git)) {
> +   strbuf_addstr(path, de->d_name);
> +   strbuf_addstr(template, de->d_name);
> +   if (lstat(path->buf, _git)) {
> if (errno != ENOENT)
> -   die_errno(_("cannot stat '%s'"), path);
> +   die_errno(_("cannot stat '%s'"), path->buf);
> }
> else
> exists = 1;
>
> -   if (lstat(template, _template))
> -   die_errno(_("cannot stat template '%s'"), template);
> +   if (lstat(template->buf, _template))
> +   die_errno(_("cannot stat template '%s'"), 
> template->buf);
>
> if (S_ISDIR(st_template.st_mode)) {
> -   DIR *subdir = opendir(template);
> -   int baselen_sub = baselen + namelen;
> -   int template_baselen_sub = template_baselen + namelen;
> +   DIR *subdir = opendir(template->buf);
> if (!subdir)
> -   die_errno(_("cannot opendir '%s'"), template);
> -   path[baselen_sub++] =
> -   template[template_baselen_sub++] = '/';
> -   path[baselen_sub] =
> -   template[template_baselen_sub] = 0;
> -   copy_templates_1(path, baselen_sub,
> -   

Re: [PATCH v4 1/2] git-p4: add test case for "Translation of file content failed" error

2015-09-22 Thread Michael Blume
I'm seeing test failures

non-executable tests: t9825-git-p4-handle-utf16-without-bom.sh

ls -l shows that all the other tests are executable but t9825 isn't.

On Tue, Sep 22, 2015 at 9:02 AM, Junio C Hamano  wrote:
> Lars Schneider  writes:
>
>> This works.
>
> OK, and thanks; as I don't do perforce, the squash was without any
> testing.
>
>> Do we need the “-e” option?
>
> In syntactic sense, no, but our codebase tends to prefer to have
> one, because it is easier to spot which ones are the instructions if
> you consistently have "-e" even when you give only one.
> --
> 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: 'make test' fails in pu

2015-02-17 Thread Michael Blume
For the record, that commit also sporadically breaks test 3910 on my
system (mentioning since it's not on the list)

On Tue, Feb 17, 2015 at 12:55 AM, Jeff King p...@peff.net wrote:
 On Tue, Feb 17, 2015 at 09:39:17AM +0100, Dennis Kaarsemaker wrote:

 Make test has been failing for 'pu' yesterday for and today at
 t4016-diff-quote.sh. Full log:
 http://ci.kaarsemaker.net/git/refs/heads/pu/1df29c71a731c679de9055ae5e407f3a4e18740a/artefact/test/log

 I noticed this a few times before and it tends to get fixed again
 relatively quickly. So I'm wondering:

 - Should I even mention that it's failing, or is that just useless
   noise?
 - If I should report this, I could also make my testing thing send
   mails. Would that be useful?

 If you bisect this, it turns up commit 30cd8f94f, which says:

 WIP: diff-b-m

 [...]

 This update is still broken and breaks a handful of tests:

  4016 4023 4047 4130 6022 6031 6032 9300 9200 9300 9350

 Sometimes a breakage in pu is surprising (e.g., it breaks only on a
 platform that the maintainer does not run make test on) and we would
 want to know about it. But sometimes it is merely that there is a
 work-in-progress. And it probably requires a human to tell the
 difference.

 So no, I do not think automatically mailing on test failures in pu is a
 good idea. Manually peeking at them and sending fixes before the series
 is merged to next _is_ very much encouraged, though. :)

 Unlike pu, next and master should never fail tests (I think that
 Junio will not push them out if the tests have failed on his system). So
 failures there are much more likely to be interesting platform bugs (but
 of course, testing pu is still encouraged, as we may catch problems).

 But even for next, I would say blind automated emails are not nearly
 as useful as a human who has looked at the problem (and especially
 bisected).

 -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
--
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 21/21] t3080: tests for git-list-files

2015-01-28 Thread Michael Blume
On Wed, Jan 28, 2015 at 2:19 AM, Duy Nguyen pclo...@gmail.com wrote:
 On Wed, Jan 28, 2015 at 11:44 AM, Michael Blume blume.m...@gmail.com wrote:
 Test 3 is failing on my mac:

 expecting success:
 test_config color.ls.file red 
 test_config color.ls.directory green 
 test_config color.ls.submodule yellow 
 git list-files --color=always actual 
 test_cmp $TEST_DIRECTORY/t3080/color_ls actual

 --- /Users/michael.blume/workspace/git/t/t3080/color_ls 2015-01-28
 04:40:23.0 +
 +++ actual 2015-01-28 04:42:59.0 +
 @@ -1,3 +1,3 @@
 -dir
 -file
 -gitlink
 +dir
 +file
 +gitlink

 Urgh.. colors do not send well over plain text.. I just realized we
 have test_decode_color to convert colors to text descriptions.. will
 fix..

 Anyway, I think i may know why it fails. I suppose  the env variable
 LS_COLORS is not defined, or defined as empty in your shell?
 --
 Duy


In case it helps:
https://www.dropbox.com/s/zsm3xgulmsl3rqm/Screenshot%202015-01-28%2009.46.57.png?dl=0

Also no, LS_COLORS is not defined

$ echo $LS_COLORS

$
--
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 21/21] t3080: tests for git-list-files

2015-01-27 Thread Michael Blume
Test 3 is failing on my mac:

expecting success:
test_config color.ls.file red 
test_config color.ls.directory green 
test_config color.ls.submodule yellow 
git list-files --color=always actual 
test_cmp $TEST_DIRECTORY/t3080/color_ls actual

--- /Users/michael.blume/workspace/git/t/t3080/color_ls 2015-01-28
04:40:23.0 +
+++ actual 2015-01-28 04:42:59.0 +
@@ -1,3 +1,3 @@
-dir
-file
-gitlink
+dir
+file
+gitlink
not ok 3 - color.ls.*
#
# test_config color.ls.file red 
# test_config color.ls.directory green 
# test_config color.ls.submodule yellow 
# git list-files --color=always actual 
# test_cmp $TEST_DIRECTORY/t3080/color_ls actual
#

On Sun, Jan 25, 2015 at 11:20 AM, Eric Sunshine sunsh...@sunshineco.com wrote:
 On Sun, Jan 25, 2015 at 7:37 AM, Nguyễn Thái Ngọc Duy pclo...@gmail.com 
 wrote:
 Signed-off-by: Nguyễn Thái Ngọc Duy pclo...@gmail.com
 ---
 diff --git a/t/t3080-list-files.sh b/t/t3080-list-files.sh
 new file mode 100755
 index 000..6313dd9
 --- /dev/null
 +++ b/t/t3080-list-files.sh
 +test_expect_success 'no dups' '
 +   echo dirty file 

 To leave a clean slate for subsequent tests, would it make sense to
 restore 'file' to a clean state via test_when_finished()?

 +   git list-files -m file actual 
 +   echo file expected 
 +   test_cmp expected actual 
 +   git list-files -cm file actual 
 +   echo C file expected 
 +   test_cmp expected actual 
 +   git list-files -tcm file actual 
 +   test_cmp expected actual
 +'
 +
 +test_expect_success 'diff-cached' '
 +   echo dirty file 
 +   git add file 

 Ditto here?

 +   git list-files -M actual 
 +   echo file expected 
 +   test_cmp expected actual
 +'
 --
 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


Git compile warnings (under mac/clang)

2015-01-22 Thread Michael Blume
These are probably minor, I only bring them up because Git's build is
generally so quiet that it might be worth squashing these too.

CC fsck.o
fsck.c:110:38: warning: comparison of unsigned enum expression = 0 is
always true [-Wtautological-compare]
if (options-msg_severity  msg_id = 0  msg_id  FSCK_MSG_MAX)
 ~~ ^  ~
1 warning generated.
AR libgit.a
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib:
file: libgit.a(gettext.o) has no symbols
CC builtin/remote.o
builtin/remote.c:1572:5: warning: add explicit braces to avoid
dangling else [-Wdangling-else]
else
^
builtin/remote.c:1580:5: warning: add explicit braces to avoid
dangling else [-Wdangling-else]
else
^
2 warnings generated.

(the warning about libgit.a(gettext.o) is probably because I'm
building with NO_GETTEXT -- I've never been able to get gettext to
work on my mac)
--
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: Segmentation fault in git apply

2015-01-14 Thread Michael Blume
On Wed, Jan 14, 2015 at 10:44 AM, Michael Blume blume.m...@gmail.com wrote:
 On Wed, Jan 14, 2015 at 10:40 AM, Michael Blume blume.m...@gmail.com wrote:
 On Wed, Jan 14, 2015 at 10:20 AM, Michael Blume blume.m...@gmail.com wrote:
 This is a mac with a fresh build of git from pu branch, commit 53b80d0.

 With my gitconfig looking like

 [user]
 email = blume.m...@gmail.com
 name = Michael Blume
 [apply]
 whitespace = fix
 [core]
 whitespace = fix,trailing-space,space-before-tab, tab-in-indent, 
 tabwidth=4

 If I run
 git clone g...@github.com:MichaelBlume/clojure.git
 cd clojure
 git checkout origin/rebase-start
 git rebase origin/rebase-base

 I get

 src/jvm/clojure/lang/Compiler.java  |  26
 +-
  test/clojure/test_clojure/compilation.clj   |  33
 -
  test/clojure/test_clojure/compilation/examples_clj_1561.clj | 121
 +
  3 files changed, 170 insertions(+), 10 deletions(-)
  create mode 100644 
 test/clojure/test_clojure/compilation/examples_clj_1561.clj
 First, rewinding head to replay your work on top of it...
 Applying: CLJ-1603 - add reducible cycle, iterate, repeat
 Applying: CLJ-1515 Reify range
 Applying: CLJ-1499 Direct iterators for PersistentHashMap,
 APersistentSet, PersistentQueue, and PersistentStructMap, and records.
 Added new IMapIterable interface for key and val iterators.
 Applying: CLJ-1602 Make keys and vals return Iterable result
 Applying: fix AOT bug preventing overriding of clojure.core functions
 Applying: catch multiple rest forms
 Applying: zipmap using iterators and transient maps
 Applying: Define merge/merge-with after reduce has loaded
 Applying: very simple test of the merge function
 Applying: Support get on arbitrary java.util.List instances
 Applying: CLJ-1451 add take-until
 Applying: CLJ-1606 - complete eduction's xform without completing outer rfn
 Applying: add unrolled vector implementation
 Applying: add transient? predicate
 Applying: fix emitted line numbers
 Using index info to reconstruct a base tree...
 M src/jvm/clojure/lang/Compiler.java
 Falling back to patching base and 3-way merge...
 Auto-merging src/jvm/clojure/lang/Compiler.java
 Applying: just use a not
 Applying: trailing whitespace
 Applying: don't mix tabs/spaces in clojure.xml/emit-element
 Applying: avoid mixing tabs with spaces in clojure core code
 Applying: don't optimize for defrecord lookup if keyword is namespaced
 Applying: CLJ-1572 - Extend CollReduce to IReduceInit for supported arity
 Applying: unrolled impls for maps
 Applying: CLJ-703: Remove flush and sync calls when writing class files.
 Applying: CLJ-1078: Add queue and queue? to clojure.core
 Applying: make RT.boundedLength lazier
 Applying: first try for adding compare
 Applying: Fix for #CLJ-1565
 Applying: CLJ-1074: Read +/- Infinity and NaN
 Applying: Fix CLJ-1074 for EdnReader too, see
 eaeda2e7bf2697e565decdf14a8a99fbf8588c57
 Applying: add get-and-set! to expose AtomicReference.getAndSet() for atoms
 Applying: CLJ-1472 Locking macro without explicit monitor-enter, 
 monitor-exit
 Applying: CLJ-1449: Add starts-with? ends-with? contains? to clojure.string
 Applying: if test expr of an if statement is a literal, don't emit the
 runtime test
 Applying: evaluate def symbol metadata only once
 Applying: CLJ-1295: Speed up dissoc on array-maps
 Applying: some throwing
 Applying: don't pass offset to ArrayChunk
 Applying: make EMPTY accessible
 Applying: add handy create methods
 Applying: regenerate
 Applying: regenerate
 /Users/michael.blume/libexec/git-core/git-am: line 854: 92059
 Segmentation fault: 11  git apply --index $dotest/patch  /dev/null
 21
 /Users/michael.blume/workspace/clojure/.git/rebase-apply/patch:13: tab
 in indent.
IPersistentVector v = (IPersistentVector) asTransient().conj(val)
 /Users/michael.blume/workspace/clojure/.git/rebase-apply/patch:14: tab
 in indent.
.persistent();
 /Users/michael.blume/workspace/clojure/.git/rebase-apply/patch:15: tab
 in indent.
return (IPersistentVector) ((IObj) v).withMeta(meta);
 /Users/michael.blume/workspace/clojure/.git/rebase-apply/patch:25: tab
 in indent.
 ITransientCollection coll = PersistentVector.EMPTY
 /Users/michael.blume/workspace/clojure/.git/rebase-apply/patch:27: tab
 in indent.
 return (ITransientVector) coll.conj(e0).conj(e1).conj(e2)
 warning: squelched 1 whitespace error
 warning: 6 lines add whitespace errors.
 Using index info to reconstruct a base tree...
 M src/jvm/clojure/lang/PersistentUnrolledVector.java
 stdin:13: tab in indent.
IPersistentVector v = (IPersistentVector) asTransient().conj(val)
 stdin:14: tab in indent.
.persistent();
 stdin:15: tab in indent.
return (IPersistentVector) ((IObj) v).withMeta(meta);
 stdin:25: tab in indent.
 ITransientCollection coll = PersistentVector.EMPTY
 stdin

Re: Segmentation fault in git apply

2015-01-14 Thread Michael Blume
On Wed, Jan 14, 2015 at 10:48 AM, Michael Blume blume.m...@gmail.com wrote:
 On Wed, Jan 14, 2015 at 10:44 AM, Michael Blume blume.m...@gmail.com wrote:
 On Wed, Jan 14, 2015 at 10:40 AM, Michael Blume blume.m...@gmail.com wrote:
 On Wed, Jan 14, 2015 at 10:20 AM, Michael Blume blume.m...@gmail.com 
 wrote:
 This is a mac with a fresh build of git from pu branch, commit 53b80d0.

 With my gitconfig looking like

 [user]
 email = blume.m...@gmail.com
 name = Michael Blume
 [apply]
 whitespace = fix
 [core]
 whitespace = fix,trailing-space,space-before-tab, tab-in-indent, 
 tabwidth=4

 If I run
 git clone g...@github.com:MichaelBlume/clojure.git
 cd clojure
 git checkout origin/rebase-start
 git rebase origin/rebase-base

 I get

 src/jvm/clojure/lang/Compiler.java  |  26
 +-
  test/clojure/test_clojure/compilation.clj   |  33
 -
  test/clojure/test_clojure/compilation/examples_clj_1561.clj | 121
 +
  3 files changed, 170 insertions(+), 10 deletions(-)
  create mode 100644 
 test/clojure/test_clojure/compilation/examples_clj_1561.clj
 First, rewinding head to replay your work on top of it...
 Applying: CLJ-1603 - add reducible cycle, iterate, repeat
 Applying: CLJ-1515 Reify range
 Applying: CLJ-1499 Direct iterators for PersistentHashMap,
 APersistentSet, PersistentQueue, and PersistentStructMap, and records.
 Added new IMapIterable interface for key and val iterators.
 Applying: CLJ-1602 Make keys and vals return Iterable result
 Applying: fix AOT bug preventing overriding of clojure.core functions
 Applying: catch multiple rest forms
 Applying: zipmap using iterators and transient maps
 Applying: Define merge/merge-with after reduce has loaded
 Applying: very simple test of the merge function
 Applying: Support get on arbitrary java.util.List instances
 Applying: CLJ-1451 add take-until
 Applying: CLJ-1606 - complete eduction's xform without completing outer rfn
 Applying: add unrolled vector implementation
 Applying: add transient? predicate
 Applying: fix emitted line numbers
 Using index info to reconstruct a base tree...
 M src/jvm/clojure/lang/Compiler.java
 Falling back to patching base and 3-way merge...
 Auto-merging src/jvm/clojure/lang/Compiler.java
 Applying: just use a not
 Applying: trailing whitespace
 Applying: don't mix tabs/spaces in clojure.xml/emit-element
 Applying: avoid mixing tabs with spaces in clojure core code
 Applying: don't optimize for defrecord lookup if keyword is namespaced
 Applying: CLJ-1572 - Extend CollReduce to IReduceInit for supported arity
 Applying: unrolled impls for maps
 Applying: CLJ-703: Remove flush and sync calls when writing class files.
 Applying: CLJ-1078: Add queue and queue? to clojure.core
 Applying: make RT.boundedLength lazier
 Applying: first try for adding compare
 Applying: Fix for #CLJ-1565
 Applying: CLJ-1074: Read +/- Infinity and NaN
 Applying: Fix CLJ-1074 for EdnReader too, see
 eaeda2e7bf2697e565decdf14a8a99fbf8588c57
 Applying: add get-and-set! to expose AtomicReference.getAndSet() for atoms
 Applying: CLJ-1472 Locking macro without explicit monitor-enter, 
 monitor-exit
 Applying: CLJ-1449: Add starts-with? ends-with? contains? to clojure.string
 Applying: if test expr of an if statement is a literal, don't emit the
 runtime test
 Applying: evaluate def symbol metadata only once
 Applying: CLJ-1295: Speed up dissoc on array-maps
 Applying: some throwing
 Applying: don't pass offset to ArrayChunk
 Applying: make EMPTY accessible
 Applying: add handy create methods
 Applying: regenerate
 Applying: regenerate
 /Users/michael.blume/libexec/git-core/git-am: line 854: 92059
 Segmentation fault: 11  git apply --index $dotest/patch  /dev/null
 21
 /Users/michael.blume/workspace/clojure/.git/rebase-apply/patch:13: tab
 in indent.
IPersistentVector v = (IPersistentVector) asTransient().conj(val)
 /Users/michael.blume/workspace/clojure/.git/rebase-apply/patch:14: tab
 in indent.
.persistent();
 /Users/michael.blume/workspace/clojure/.git/rebase-apply/patch:15: tab
 in indent.
return (IPersistentVector) ((IObj) v).withMeta(meta);
 /Users/michael.blume/workspace/clojure/.git/rebase-apply/patch:25: tab
 in indent.
 ITransientCollection coll = PersistentVector.EMPTY
 /Users/michael.blume/workspace/clojure/.git/rebase-apply/patch:27: tab
 in indent.
 return (ITransientVector) coll.conj(e0).conj(e1).conj(e2)
 warning: squelched 1 whitespace error
 warning: 6 lines add whitespace errors.
 Using index info to reconstruct a base tree...
 M src/jvm/clojure/lang/PersistentUnrolledVector.java
 stdin:13: tab in indent.
IPersistentVector v = (IPersistentVector) asTransient().conj(val)
 stdin:14: tab in indent.
.persistent();
 stdin:15: tab in indent.
return (IPersistentVector) ((IObj) v).withMeta(meta

Segmentation fault in git apply

2015-01-14 Thread Michael Blume
This is a mac with a fresh build of git from pu branch, commit 53b80d0.

With my gitconfig looking like

[user]
email = blume.m...@gmail.com
name = Michael Blume
[apply]
whitespace = fix
[core]
whitespace = fix,trailing-space,space-before-tab, tab-in-indent, tabwidth=4

If I run
git clone g...@github.com:MichaelBlume/clojure.git
cd clojure
git checkout origin/rebase-start
git rebase origin/rebase-base

I get

src/jvm/clojure/lang/Compiler.java  |  26
+-
 test/clojure/test_clojure/compilation.clj   |  33
-
 test/clojure/test_clojure/compilation/examples_clj_1561.clj | 121
+
 3 files changed, 170 insertions(+), 10 deletions(-)
 create mode 100644 test/clojure/test_clojure/compilation/examples_clj_1561.clj
First, rewinding head to replay your work on top of it...
Applying: CLJ-1603 - add reducible cycle, iterate, repeat
Applying: CLJ-1515 Reify range
Applying: CLJ-1499 Direct iterators for PersistentHashMap,
APersistentSet, PersistentQueue, and PersistentStructMap, and records.
Added new IMapIterable interface for key and val iterators.
Applying: CLJ-1602 Make keys and vals return Iterable result
Applying: fix AOT bug preventing overriding of clojure.core functions
Applying: catch multiple rest forms
Applying: zipmap using iterators and transient maps
Applying: Define merge/merge-with after reduce has loaded
Applying: very simple test of the merge function
Applying: Support get on arbitrary java.util.List instances
Applying: CLJ-1451 add take-until
Applying: CLJ-1606 - complete eduction's xform without completing outer rfn
Applying: add unrolled vector implementation
Applying: add transient? predicate
Applying: fix emitted line numbers
Using index info to reconstruct a base tree...
M src/jvm/clojure/lang/Compiler.java
Falling back to patching base and 3-way merge...
Auto-merging src/jvm/clojure/lang/Compiler.java
Applying: just use a not
Applying: trailing whitespace
Applying: don't mix tabs/spaces in clojure.xml/emit-element
Applying: avoid mixing tabs with spaces in clojure core code
Applying: don't optimize for defrecord lookup if keyword is namespaced
Applying: CLJ-1572 - Extend CollReduce to IReduceInit for supported arity
Applying: unrolled impls for maps
Applying: CLJ-703: Remove flush and sync calls when writing class files.
Applying: CLJ-1078: Add queue and queue? to clojure.core
Applying: make RT.boundedLength lazier
Applying: first try for adding compare
Applying: Fix for #CLJ-1565
Applying: CLJ-1074: Read +/- Infinity and NaN
Applying: Fix CLJ-1074 for EdnReader too, see
eaeda2e7bf2697e565decdf14a8a99fbf8588c57
Applying: add get-and-set! to expose AtomicReference.getAndSet() for atoms
Applying: CLJ-1472 Locking macro without explicit monitor-enter, monitor-exit
Applying: CLJ-1449: Add starts-with? ends-with? contains? to clojure.string
Applying: if test expr of an if statement is a literal, don't emit the
runtime test
Applying: evaluate def symbol metadata only once
Applying: CLJ-1295: Speed up dissoc on array-maps
Applying: some throwing
Applying: don't pass offset to ArrayChunk
Applying: make EMPTY accessible
Applying: add handy create methods
Applying: regenerate
Applying: regenerate
/Users/michael.blume/libexec/git-core/git-am: line 854: 92059
Segmentation fault: 11  git apply --index $dotest/patch  /dev/null
21
/Users/michael.blume/workspace/clojure/.git/rebase-apply/patch:13: tab
in indent.
   IPersistentVector v = (IPersistentVector) asTransient().conj(val)
/Users/michael.blume/workspace/clojure/.git/rebase-apply/patch:14: tab
in indent.
   .persistent();
/Users/michael.blume/workspace/clojure/.git/rebase-apply/patch:15: tab
in indent.
   return (IPersistentVector) ((IObj) v).withMeta(meta);
/Users/michael.blume/workspace/clojure/.git/rebase-apply/patch:25: tab
in indent.
ITransientCollection coll = PersistentVector.EMPTY
/Users/michael.blume/workspace/clojure/.git/rebase-apply/patch:27: tab
in indent.
return (ITransientVector) coll.conj(e0).conj(e1).conj(e2)
warning: squelched 1 whitespace error
warning: 6 lines add whitespace errors.
Using index info to reconstruct a base tree...
M src/jvm/clojure/lang/PersistentUnrolledVector.java
stdin:13: tab in indent.
   IPersistentVector v = (IPersistentVector) asTransient().conj(val)
stdin:14: tab in indent.
   .persistent();
stdin:15: tab in indent.
   return (IPersistentVector) ((IObj) v).withMeta(meta);
stdin:25: tab in indent.
ITransientCollection coll = PersistentVector.EMPTY
stdin:27: tab in indent.
return (ITransientVector) coll.conj(e0).conj(e1).conj(e2)
warning: squelched 1 whitespace error
warning: 6 lines applied after fixing whitespace errors.
Falling back to patching base and 3-way merge...
fatal: Unable to create
'/Users/michael.blume/workspace/clojure/.git/index.lock': File exists.

If no other git

Re: Segmentation fault in git apply

2015-01-14 Thread Michael Blume
On Wed, Jan 14, 2015 at 10:20 AM, Michael Blume blume.m...@gmail.com wrote:
 This is a mac with a fresh build of git from pu branch, commit 53b80d0.

 With my gitconfig looking like

 [user]
 email = blume.m...@gmail.com
 name = Michael Blume
 [apply]
 whitespace = fix
 [core]
 whitespace = fix,trailing-space,space-before-tab, tab-in-indent, 
 tabwidth=4

 If I run
 git clone g...@github.com:MichaelBlume/clojure.git
 cd clojure
 git checkout origin/rebase-start
 git rebase origin/rebase-base

 I get

 src/jvm/clojure/lang/Compiler.java  |  26
 +-
  test/clojure/test_clojure/compilation.clj   |  33
 -
  test/clojure/test_clojure/compilation/examples_clj_1561.clj | 121
 +
  3 files changed, 170 insertions(+), 10 deletions(-)
  create mode 100644 
 test/clojure/test_clojure/compilation/examples_clj_1561.clj
 First, rewinding head to replay your work on top of it...
 Applying: CLJ-1603 - add reducible cycle, iterate, repeat
 Applying: CLJ-1515 Reify range
 Applying: CLJ-1499 Direct iterators for PersistentHashMap,
 APersistentSet, PersistentQueue, and PersistentStructMap, and records.
 Added new IMapIterable interface for key and val iterators.
 Applying: CLJ-1602 Make keys and vals return Iterable result
 Applying: fix AOT bug preventing overriding of clojure.core functions
 Applying: catch multiple rest forms
 Applying: zipmap using iterators and transient maps
 Applying: Define merge/merge-with after reduce has loaded
 Applying: very simple test of the merge function
 Applying: Support get on arbitrary java.util.List instances
 Applying: CLJ-1451 add take-until
 Applying: CLJ-1606 - complete eduction's xform without completing outer rfn
 Applying: add unrolled vector implementation
 Applying: add transient? predicate
 Applying: fix emitted line numbers
 Using index info to reconstruct a base tree...
 M src/jvm/clojure/lang/Compiler.java
 Falling back to patching base and 3-way merge...
 Auto-merging src/jvm/clojure/lang/Compiler.java
 Applying: just use a not
 Applying: trailing whitespace
 Applying: don't mix tabs/spaces in clojure.xml/emit-element
 Applying: avoid mixing tabs with spaces in clojure core code
 Applying: don't optimize for defrecord lookup if keyword is namespaced
 Applying: CLJ-1572 - Extend CollReduce to IReduceInit for supported arity
 Applying: unrolled impls for maps
 Applying: CLJ-703: Remove flush and sync calls when writing class files.
 Applying: CLJ-1078: Add queue and queue? to clojure.core
 Applying: make RT.boundedLength lazier
 Applying: first try for adding compare
 Applying: Fix for #CLJ-1565
 Applying: CLJ-1074: Read +/- Infinity and NaN
 Applying: Fix CLJ-1074 for EdnReader too, see
 eaeda2e7bf2697e565decdf14a8a99fbf8588c57
 Applying: add get-and-set! to expose AtomicReference.getAndSet() for atoms
 Applying: CLJ-1472 Locking macro without explicit monitor-enter, monitor-exit
 Applying: CLJ-1449: Add starts-with? ends-with? contains? to clojure.string
 Applying: if test expr of an if statement is a literal, don't emit the
 runtime test
 Applying: evaluate def symbol metadata only once
 Applying: CLJ-1295: Speed up dissoc on array-maps
 Applying: some throwing
 Applying: don't pass offset to ArrayChunk
 Applying: make EMPTY accessible
 Applying: add handy create methods
 Applying: regenerate
 Applying: regenerate
 /Users/michael.blume/libexec/git-core/git-am: line 854: 92059
 Segmentation fault: 11  git apply --index $dotest/patch  /dev/null
 21
 /Users/michael.blume/workspace/clojure/.git/rebase-apply/patch:13: tab
 in indent.
IPersistentVector v = (IPersistentVector) asTransient().conj(val)
 /Users/michael.blume/workspace/clojure/.git/rebase-apply/patch:14: tab
 in indent.
.persistent();
 /Users/michael.blume/workspace/clojure/.git/rebase-apply/patch:15: tab
 in indent.
return (IPersistentVector) ((IObj) v).withMeta(meta);
 /Users/michael.blume/workspace/clojure/.git/rebase-apply/patch:25: tab
 in indent.
 ITransientCollection coll = PersistentVector.EMPTY
 /Users/michael.blume/workspace/clojure/.git/rebase-apply/patch:27: tab
 in indent.
 return (ITransientVector) coll.conj(e0).conj(e1).conj(e2)
 warning: squelched 1 whitespace error
 warning: 6 lines add whitespace errors.
 Using index info to reconstruct a base tree...
 M src/jvm/clojure/lang/PersistentUnrolledVector.java
 stdin:13: tab in indent.
IPersistentVector v = (IPersistentVector) asTransient().conj(val)
 stdin:14: tab in indent.
.persistent();
 stdin:15: tab in indent.
return (IPersistentVector) ((IObj) v).withMeta(meta);
 stdin:25: tab in indent.
 ITransientCollection coll = PersistentVector.EMPTY
 stdin:27: tab in indent.
 return (ITransientVector) coll.conj(e0).conj(e1).conj(e2)
 warning: squelched 1 whitespace error
 warning: 6 lines applied after fixing

Re: Segmentation fault in git apply

2015-01-14 Thread Michael Blume
On Wed, Jan 14, 2015 at 10:40 AM, Michael Blume blume.m...@gmail.com wrote:
 On Wed, Jan 14, 2015 at 10:20 AM, Michael Blume blume.m...@gmail.com wrote:
 This is a mac with a fresh build of git from pu branch, commit 53b80d0.

 With my gitconfig looking like

 [user]
 email = blume.m...@gmail.com
 name = Michael Blume
 [apply]
 whitespace = fix
 [core]
 whitespace = fix,trailing-space,space-before-tab, tab-in-indent, 
 tabwidth=4

 If I run
 git clone g...@github.com:MichaelBlume/clojure.git
 cd clojure
 git checkout origin/rebase-start
 git rebase origin/rebase-base

 I get

 src/jvm/clojure/lang/Compiler.java  |  26
 +-
  test/clojure/test_clojure/compilation.clj   |  33
 -
  test/clojure/test_clojure/compilation/examples_clj_1561.clj | 121
 +
  3 files changed, 170 insertions(+), 10 deletions(-)
  create mode 100644 
 test/clojure/test_clojure/compilation/examples_clj_1561.clj
 First, rewinding head to replay your work on top of it...
 Applying: CLJ-1603 - add reducible cycle, iterate, repeat
 Applying: CLJ-1515 Reify range
 Applying: CLJ-1499 Direct iterators for PersistentHashMap,
 APersistentSet, PersistentQueue, and PersistentStructMap, and records.
 Added new IMapIterable interface for key and val iterators.
 Applying: CLJ-1602 Make keys and vals return Iterable result
 Applying: fix AOT bug preventing overriding of clojure.core functions
 Applying: catch multiple rest forms
 Applying: zipmap using iterators and transient maps
 Applying: Define merge/merge-with after reduce has loaded
 Applying: very simple test of the merge function
 Applying: Support get on arbitrary java.util.List instances
 Applying: CLJ-1451 add take-until
 Applying: CLJ-1606 - complete eduction's xform without completing outer rfn
 Applying: add unrolled vector implementation
 Applying: add transient? predicate
 Applying: fix emitted line numbers
 Using index info to reconstruct a base tree...
 M src/jvm/clojure/lang/Compiler.java
 Falling back to patching base and 3-way merge...
 Auto-merging src/jvm/clojure/lang/Compiler.java
 Applying: just use a not
 Applying: trailing whitespace
 Applying: don't mix tabs/spaces in clojure.xml/emit-element
 Applying: avoid mixing tabs with spaces in clojure core code
 Applying: don't optimize for defrecord lookup if keyword is namespaced
 Applying: CLJ-1572 - Extend CollReduce to IReduceInit for supported arity
 Applying: unrolled impls for maps
 Applying: CLJ-703: Remove flush and sync calls when writing class files.
 Applying: CLJ-1078: Add queue and queue? to clojure.core
 Applying: make RT.boundedLength lazier
 Applying: first try for adding compare
 Applying: Fix for #CLJ-1565
 Applying: CLJ-1074: Read +/- Infinity and NaN
 Applying: Fix CLJ-1074 for EdnReader too, see
 eaeda2e7bf2697e565decdf14a8a99fbf8588c57
 Applying: add get-and-set! to expose AtomicReference.getAndSet() for atoms
 Applying: CLJ-1472 Locking macro without explicit monitor-enter, monitor-exit
 Applying: CLJ-1449: Add starts-with? ends-with? contains? to clojure.string
 Applying: if test expr of an if statement is a literal, don't emit the
 runtime test
 Applying: evaluate def symbol metadata only once
 Applying: CLJ-1295: Speed up dissoc on array-maps
 Applying: some throwing
 Applying: don't pass offset to ArrayChunk
 Applying: make EMPTY accessible
 Applying: add handy create methods
 Applying: regenerate
 Applying: regenerate
 /Users/michael.blume/libexec/git-core/git-am: line 854: 92059
 Segmentation fault: 11  git apply --index $dotest/patch  /dev/null
 21
 /Users/michael.blume/workspace/clojure/.git/rebase-apply/patch:13: tab
 in indent.
IPersistentVector v = (IPersistentVector) asTransient().conj(val)
 /Users/michael.blume/workspace/clojure/.git/rebase-apply/patch:14: tab
 in indent.
.persistent();
 /Users/michael.blume/workspace/clojure/.git/rebase-apply/patch:15: tab
 in indent.
return (IPersistentVector) ((IObj) v).withMeta(meta);
 /Users/michael.blume/workspace/clojure/.git/rebase-apply/patch:25: tab
 in indent.
 ITransientCollection coll = PersistentVector.EMPTY
 /Users/michael.blume/workspace/clojure/.git/rebase-apply/patch:27: tab
 in indent.
 return (ITransientVector) coll.conj(e0).conj(e1).conj(e2)
 warning: squelched 1 whitespace error
 warning: 6 lines add whitespace errors.
 Using index info to reconstruct a base tree...
 M src/jvm/clojure/lang/PersistentUnrolledVector.java
 stdin:13: tab in indent.
IPersistentVector v = (IPersistentVector) asTransient().conj(val)
 stdin:14: tab in indent.
.persistent();
 stdin:15: tab in indent.
return (IPersistentVector) ((IObj) v).withMeta(meta);
 stdin:25: tab in indent.
 ITransientCollection coll = PersistentVector.EMPTY
 stdin:27: tab in indent.
 return (ITransientVector) coll.conj(e0).conj(e1).conj(e2

Re: [PATCH v3 2/4] rev-list: add an option to mark fewer edges as uninteresting

2014-12-23 Thread Michael Blume
This patch causes an error on my mac, test 5500 fetch-pack errors on
part 44 - fetch creating new shallow root. It looks for remote: Total
1 in the fetch output and gets 3 instead.

On Tue, Dec 23, 2014 at 7:01 AM, brian m. carlson
sand...@crustytoothpaste.net wrote:
 In commit fbd4a70 (list-objects: mark more commits as edges in
 mark_edges_uninteresting - 2013-08-16), we marked an increasing number
 of edges uninteresting.  This change, and the subsequent change to make
 this conditional on --objects-edge, are used by --thin to make much
 smaller packs for shallow clones.

 Unfortunately, they cause a significant performance regression when
 pushing non-shallow clones with lots of refs (23.322 seconds vs.
 4.785 seconds with 22400 refs).  Add an option to git rev-list,
 --objects-edge-aggressive, that preserves this more aggressive behavior,
 while leaving --objects-edge to provide more performant behavior.

 Signed-off-by: brian m. carlson sand...@crustytoothpaste.net
 ---
  Documentation/git-rev-list.txt | 3 ++-
  Documentation/rev-list-options.txt | 4 
  list-objects.c | 4 ++--
  revision.c | 6 ++
  revision.h | 1 +
  5 files changed, 15 insertions(+), 3 deletions(-)

 diff --git a/Documentation/git-rev-list.txt b/Documentation/git-rev-list.txt
 index fd7f8b5..5b11922 100644
 --- a/Documentation/git-rev-list.txt
 +++ b/Documentation/git-rev-list.txt
 @@ -46,7 +46,8 @@ SYNOPSIS
  [ \--extended-regexp | -E ]
  [ \--fixed-strings | -F ]
  [ \--date=(local|relative|default|iso|iso-strict|rfc|short) ]
 -[ [\--objects | \--objects-edge] [ \--unpacked ] ]
 +[ [ \--objects | \--objects-edge | \--objects-edge-aggressive ]
 +  [ \--unpacked ] ]
  [ \--pretty | \--header ]
  [ \--bisect ]
  [ \--bisect-vars ]
 diff --git a/Documentation/rev-list-options.txt 
 b/Documentation/rev-list-options.txt
 index 2277fcb..8cb6f92 100644
 --- a/Documentation/rev-list-options.txt
 +++ b/Documentation/rev-list-options.txt
 @@ -657,6 +657,10 @@ These options are mostly targeted for packing of Git 
 repositories.
 objects in deltified form based on objects contained in these
 excluded commits to reduce network traffic.

 +--objects-edge-aggressive::
 +   Similar to `--objects-edge`, but it tries harder to find excluded
 +   commits at the cost of increased time.
 +
  --unpacked::
 Only useful with `--objects`; print the object IDs that are not
 in packs.
 diff --git a/list-objects.c b/list-objects.c
 index 2910bec..2a139b6 100644
 --- a/list-objects.c
 +++ b/list-objects.c
 @@ -157,7 +157,7 @@ void mark_edges_uninteresting(struct rev_info *revs, 
 show_edge_fn show_edge)

 if (commit-object.flags  UNINTERESTING) {
 mark_tree_uninteresting(commit-tree);
 -   if (revs-edge_hint  !(commit-object.flags  
 SHOWN)) {
 +   if (revs-edge_hint_aggressive  
 !(commit-object.flags  SHOWN)) {
 commit-object.flags |= SHOWN;
 show_edge(commit);
 }
 @@ -165,7 +165,7 @@ void mark_edges_uninteresting(struct rev_info *revs, 
 show_edge_fn show_edge)
 }
 mark_edge_parents_uninteresting(commit, revs, show_edge);
 }
 -   if (revs-edge_hint) {
 +   if (revs-edge_hint_aggressive) {
 for (i = 0; i  revs-cmdline.nr; i++) {
 struct object *obj = revs-cmdline.rev[i].item;
 struct commit *commit = (struct commit *)obj;
 diff --git a/revision.c b/revision.c
 index 75dda92..753dd2f 100644
 --- a/revision.c
 +++ b/revision.c
 @@ -1853,6 +1853,12 @@ static int handle_revision_opt(struct rev_info *revs, 
 int argc, const char **arg
 revs-tree_objects = 1;
 revs-blob_objects = 1;
 revs-edge_hint = 1;
 +   } else if (!strcmp(arg, --objects-edge-aggressive)) {
 +   revs-tag_objects = 1;
 +   revs-tree_objects = 1;
 +   revs-blob_objects = 1;
 +   revs-edge_hint = 1;
 +   revs-edge_hint_aggressive = 1;
 } else if (!strcmp(arg, --verify-objects)) {
 revs-tag_objects = 1;
 revs-tree_objects = 1;
 diff --git a/revision.h b/revision.h
 index 9cb5adc..033a244 100644
 --- a/revision.h
 +++ b/revision.h
 @@ -93,6 +93,7 @@ struct rev_info {
 blob_objects:1,
 verify_objects:1,
 edge_hint:1,
 +   edge_hint_aggressive:1,
 limited:1,
 unpacked:1,
 boundary:2,
 --
 2.2.1.209.g41e5f3a

 --
 To unsubscribe from this list: send the line unsubscribe git in
 the body of a 

Re: [RFC/PATCH] pkt-line: allow writing of LARGE_PACKET_MAX buffers

2014-12-09 Thread Michael Blume
On Tue, Dec 9, 2014 at 2:41 PM, Junio C Hamano gits...@pobox.com wrote:
 Jeff King p...@peff.net writes:

 On Tue, Dec 09, 2014 at 12:49:58PM -0500, Jeff King wrote:

 Another option would be to use a static strbuf. Then we're only wasting
 heap, and even then only as much as we need (we'd still manually cap it
 at LARGE_PACKET_MAX since that's what the protocol dictates). This would
 also make packet_buf_write more efficient (right now it formats into a
 static buffer, and then copies the result into a strbuf; probably not
 measurably important, but silly nonetheless).

 Below is what that would look like. It's obviously a much more invasive
 change, but I think the result is nice.

 Yes, indeed.  Is there any reason why we shouldn't go with this
 variant, other than it touches a bit more lines that I am not
 seeing?

 Let's switch to using a strbuf, with a hard-limit of
 LARGE_PACKET_MAX (which is specified by the protocol).  This
 matches the size of the readers, as of 74543a0 (pkt-line:
 provide a LARGE_PACKET_MAX static buffer, 2013-02-20).
 Versions of git older than that will complain about our
 large packets, but it's really no worse than the current
 behavior. Right now the sender barfs with impossibly long
 line trying to send the packet, and afterwards the reader
 will barf with protocol error: bad line length %d, which
 is arguably better anyway.

 Anything older than 1.8.3 is affected by this, but only when the
 sending side has to send a large packet.  It is between failing
 because the sender cannot send a large packet and failing because
 the receiver does not expect such a large packet to come, and either
 way the whole operation will fail anyway, so there is no net loss.

 --
 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

I'm getting failures on my mac too, I assume filesystem-related.
--
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


Accept-language test fails on Mac OS

2014-12-05 Thread Michael Blume
Test #25 'git client sends Accept-Language based on LANGUAGE, LC_ALL,
LC_MESSAGES and LANG' in t5550 fails consistently on my mac, and has
since the test was introduced. Test 26 and 27 ('git client sends
Accept-Language with many preferred languages' and 'git client does
not send Accept-Language') seem fine.

I'm building git with NO_GETTEXT=1, which may be an issue? But in that
case the test should probably be gated on gettext?
--
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: Accept-language test fails on Mac OS

2014-12-05 Thread Michael Blume
On Fri, Dec 5, 2014 at 2:51 PM, Junio C Hamano gits...@pobox.com wrote:
 Michael Blume blume.m...@gmail.com writes:

 Test #25 'git client sends Accept-Language based on LANGUAGE, LC_ALL,
 LC_MESSAGES and LANG' in t5550 fails consistently on my mac, and has
 since the test was introduced. Test 26 and 27 ('git client sends
 Accept-Language with many preferred languages' and 'git client does
 not send Accept-Language') seem fine.

 I'm building git with NO_GETTEXT=1, which may be an issue? But in that
 case the test should probably be gated on gettext?

 I recall queuing a SQUASH??? on top of the posted patch; does these
 tests pass with it reverted?

The test fails both on pu and on 7567fad which is prior to the
SQUASH??? commit, so the squash does not seem to change anything.
--
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


no-xmailer tests fail under Mac OS

2014-12-05 Thread Michael Blume
Failures start from

commit d2384abff7a6181fd7b9a51af7e780aa21e5cb8d (refs/bisect/bad)
Author: Luis Henriques hen...@camandro.org
Date:   Thu Dec 4 19:11:30 2014 +

test/send-email: --[no-]xmailer tests

Add tests for the --[no-]xmailer option.

Signed-off-by: Luis Henriques hen...@camandro.org
Signed-off-by: Junio C Hamano gits...@pobox.com

but continue with Junio's SQUASH??? commit at b728d078

Verbose output follows

expecting success:
do_xmailer_test 1 --xmailer 
do_xmailer_test 0 --no-xmailer

0001-add-master.patch
not ok 109 - --[no-]xmailer without any configuration
#
# do_xmailer_test 1 --xmailer 
# do_xmailer_test 0 --no-xmailer
#

expecting success:
test_config sendemail.xmailer true 
do_xmailer_test 1  
do_xmailer_test 0 --no-xmailer 
do_xmailer_test 1 --xmailer

0001-add-master.patch
not ok 110 - --[no-]xmailer with sendemail.xmailer=true
#
# test_config sendemail.xmailer true 
# do_xmailer_test 1  
# do_xmailer_test 0 --no-xmailer 
# do_xmailer_test 1 --xmailer
#

expecting success:
test_config sendemail.xmailer false 
do_xmailer_test 0  
do_xmailer_test 0 --no-xmailer 
do_xmailer_test 1 --xmailer

0001-add-master.patch
not ok 111 - --[no-]xmailer with sendemail.xmailer=false
#
# test_config sendemail.xmailer false 
# do_xmailer_test 0  
# do_xmailer_test 0 --no-xmailer 
# do_xmailer_test 1 --xmailer
#

# failed 3 among 111 test(s)
1..111
--
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: no-xmailer tests fail under Mac OS

2014-12-05 Thread Michael Blume
On Fri, Dec 5, 2014 at 9:34 PM, Jeff King p...@peff.net wrote:
 On Fri, Dec 05, 2014 at 06:05:24PM -0800, Michael Blume wrote:

 Failures start from

 commit d2384abff7a6181fd7b9a51af7e780aa21e5cb8d (refs/bisect/bad)
 Author: Luis Henriques hen...@camandro.org
 Date:   Thu Dec 4 19:11:30 2014 +

 test/send-email: --[no-]xmailer tests

 Add tests for the --[no-]xmailer option.

 Signed-off-by: Luis Henriques hen...@camandro.org
 Signed-off-by: Junio C Hamano gits...@pobox.com

 but continue with Junio's SQUASH??? commit at b728d078

 The commit contains:

   +   test z$(grep ^X-Mailer: out | wc -l) = z$expected

 We have had trouble in the past with wc -l output not being strictly
 portable. I do not recall offhand which systems, but it is a good bet
 that this is the culprit. Doing:

   grep ^X-Mailer: out mailer 
   test_line_count = $expected mailer

 should fix it. It might be even nicer to actually compare the x-mailer
 line we find to an expected output, but that may introduce complications
 if the value changes with the version or something (you'd have to
 sanitize the output, and then I do not know that the test is really
 buying much over just seeing whether it exists).

 -Peff

Actually need to drop the '', but yes, that works perfectly, 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 v5 1/1] http: Add Accept-Language header if possible

2014-12-03 Thread Michael Blume
On Wed, Dec 3, 2014 at 1:37 PM, Junio C Hamano gits...@pobox.com wrote:
 Eric Sunshine sunsh...@sunshineco.com writes:

 @@ -515,6 +517,9 @@ void http_cleanup(void)
 cert_auth.password = NULL;
 }
 ssl_cert_password_required = 0;
 +
 +   if (cached_accept_language)
 +   strbuf_release(cached_accept_language);

 Junio already mentioned that this is leaking the memory of the strbuf
 struct itself which was xmalloc()'d by get_accept_language().

 I actually didn't ;-)  A singleton cached_accept_language strbuf
 itself being kept around, with its reuse by get_accept_language(),
 is fine and is not a leak.  But clearing the strbuf alone will
 introduce correctness problem---the second HTTP connection will see
 an empty strbuf, get_accept_language() will say we've already
 computed and the header we must issue is an empty string, which is
 not correct.

 In the fix-up SQUASH??? commit I queued on top of this patch on
 'pu', I had to run sort -u on the output to the standard error
 stream, as there seemed to be two HTTP connections and the actual
 output had two headers, even though the test expected only one in
 the output.  I suspect that it is a fallout from this bug that the
 original code passed that test that expects only one.

 +static struct strbuf *get_accept_language(void)

 I find this API a bit strange. Use of strbuf to construct the returned
 string is an implementation detail of this function. From the caller's
 point of view, it should just be receiving a constant string: one
 which it needs neither to modify nor free. Also, if the caller were to
 modify the returned strbuf for some reason, then that modification
 would impact all future calls to get_accept_language() since the
 strbuf is 'static' and not recomputed. Instead, I would expect the
 declaration to be:

 static const char *get_accept_language(void)

 Makes sense to me.

 +   /* Put a q-factor only if it is less than 1.0. */
 +   if (q  max_q)
 +   strbuf_addf(cached_accept_language, 
 q_format, q);
 +
 +   if (q  1)
 +   q--;

 I didn't mention this but if q ever goes below 1, wouldn't it mean
 that there is no point continuing this loop?
 --
 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
This seems to be failing under Mac OS for me

not ok 25 - git client sends Accept-Language based on LANGUAGE,
LC_ALL, LC_MESSAGES and LANG
#
# check_language ko-KR, *;q=0.1 ko_KR.UTF-8 de_DE.UTF-8 ja_JP.UTF-8
en_US.UTF-8 
# check_language de-DE, *;q=0.1   de_DE.UTF-8 ja_JP.UTF-8
en_US.UTF-8 
# check_language ja-JP, *;q=0.1 ja_JP.UTF-8
en_US.UTF-8 
# check_language en-US, *;q=0.1 
en_US.UTF-8
#
--
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 v5 1/1] http: Add Accept-Language header if possible

2014-12-03 Thread Michael Blume
On Wed, Dec 3, 2014 at 2:00 PM, Michael Blume blume.m...@gmail.com wrote:
 On Wed, Dec 3, 2014 at 1:37 PM, Junio C Hamano gits...@pobox.com wrote:
 Eric Sunshine sunsh...@sunshineco.com writes:

 @@ -515,6 +517,9 @@ void http_cleanup(void)
 cert_auth.password = NULL;
 }
 ssl_cert_password_required = 0;
 +
 +   if (cached_accept_language)
 +   strbuf_release(cached_accept_language);

 Junio already mentioned that this is leaking the memory of the strbuf
 struct itself which was xmalloc()'d by get_accept_language().

 I actually didn't ;-)  A singleton cached_accept_language strbuf
 itself being kept around, with its reuse by get_accept_language(),
 is fine and is not a leak.  But clearing the strbuf alone will
 introduce correctness problem---the second HTTP connection will see
 an empty strbuf, get_accept_language() will say we've already
 computed and the header we must issue is an empty string, which is
 not correct.

 In the fix-up SQUASH??? commit I queued on top of this patch on
 'pu', I had to run sort -u on the output to the standard error
 stream, as there seemed to be two HTTP connections and the actual
 output had two headers, even though the test expected only one in
 the output.  I suspect that it is a fallout from this bug that the
 original code passed that test that expects only one.

 +static struct strbuf *get_accept_language(void)

 I find this API a bit strange. Use of strbuf to construct the returned
 string is an implementation detail of this function. From the caller's
 point of view, it should just be receiving a constant string: one
 which it needs neither to modify nor free. Also, if the caller were to
 modify the returned strbuf for some reason, then that modification
 would impact all future calls to get_accept_language() since the
 strbuf is 'static' and not recomputed. Instead, I would expect the
 declaration to be:

 static const char *get_accept_language(void)

 Makes sense to me.

 +   /* Put a q-factor only if it is less than 1.0. */
 +   if (q  max_q)
 +   strbuf_addf(cached_accept_language, 
 q_format, q);
 +
 +   if (q  1)
 +   q--;

 I didn't mention this but if q ever goes below 1, wouldn't it mean
 that there is no point continuing this loop?
 --
 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
 This seems to be failing under Mac OS for me

 not ok 25 - git client sends Accept-Language based on LANGUAGE,
 LC_ALL, LC_MESSAGES and LANG
 #
 # check_language ko-KR, *;q=0.1 ko_KR.UTF-8 de_DE.UTF-8 ja_JP.UTF-8
 en_US.UTF-8 
 # check_language de-DE, *;q=0.1   de_DE.UTF-8 ja_JP.UTF-8
 en_US.UTF-8 
 # check_language ja-JP, *;q=0.1 ja_JP.UTF-8
 en_US.UTF-8 
 # check_language en-US, *;q=0.1 
 en_US.UTF-8
 #


verbose results

Initialized empty Git repository in
/Users/Shared/Jenkins/Home/jobs/git/workspace/t/trash
directory.t5550-http-fetch-dumb/.git/
expecting success:
git config push.default matching 
echo content1 file 
git add file 
git commit -m one
echo content2 file 
git add file 
git commit -m two

[master (root-commit) f5983e9] one
 Author: A U Thor aut...@example.com
 1 file changed, 1 insertion(+)
 create mode 100644 file
[master 2ff8a06] two
 Author: A U Thor aut...@example.com
 1 file changed, 1 insertion(+), 1 deletion(-)
ok 1 - setup repository

expecting success:
cp -R .git $HTTPD_DOCUMENT_ROOT_PATH/repo.git 
(cd $HTTPD_DOCUMENT_ROOT_PATH/repo.git 
git config core.bare true 
mkdir -p hooks 
echo exec git update-server-info hooks/post-update 
chmod +x hooks/post-update 
hooks/post-update
) 
git remote add public $HTTPD_DOCUMENT_ROOT_PATH/repo.git 
git push public master:master

Everything up-to-date
ok 2 - create http-accessible bare repository with loose objects

expecting success:
git clone $HTTPD_URL/dumb/repo.git clone-tmpl 
cp -R clone-tmpl clone 
test_cmp file clone/file

Cloning into 'clone-tmpl'...
ok 3 - clone http repository

expecting success:
mkdir -p $HTTPD_DOCUMENT_ROOT_PATH/auth/dumb/ 
cp -Rf $HTTPD_DOCUMENT_ROOT_PATH/repo.git \
  $HTTPD_DOCUMENT_ROOT_PATH/auth/dumb/repo.git

ok 4 - create password-protected repository

expecting success:
write_script $TRASH_DIRECTORY/askpass -\EOF 
echo $TRASH_DIRECTORY/askpass-query askpass: $* 
case $* in
*Username*)
what=user
;;
*Password*)
what=pass
;;
esac 
cat $TRASH_DIRECTORY/askpass-$what
EOF
GIT_ASKPASS=$TRASH_DIRECTORY/askpass 
export GIT_ASKPASS 
export TRASH_DIRECTORY

ok 5 - setup askpass helper

expecting success:
set_askpass wrong 
test_must_fail git clone $HTTPD_URL/auth/dumb/repo.git clone-auth-fail 
expect_askpass both wrong

Cloning into 'clone-auth-fail'...
fatal: Authentication failed for 'http://127.0.0.1:5550/auth/dumb/repo.git/'
ok 6

Re: Deprecation warnings under XCode

2014-12-02 Thread Michael Blume
On Tue, Dec 2, 2014 at 4:37 PM, Eric Sunshine sunsh...@sunshineco.com wrote:
 On Mon, Dec 1, 2014 at 1:04 PM, Junio C Hamano gits...@pobox.com wrote:
 Torsten Bögershausen tbo...@web.de writes:

 On 12/01/2014 04:02 AM, Michael Blume wrote:
 I have no idea whether this should concern anyone, but my mac build of git 
 shows

  CC imap-send.o
 imap-send.c:183:36: warning: 'ERR_error_string' is deprecated: first
 deprecated in OS X 10.7 [-Wdeprecated-declarations]
  fprintf(stderr, %s: %s\n, func,
 ERR_error_string(ERR_get_error(), NULL));
^
 Isn't the warning a warning ;-)
 I don't see this warnings because my openssl comes from
 /opt/local/include (Mac ports)
 Does anybody know which new functions exist in Mac OS X versions = 10.7  ?

 I have not been able to find suitable Mac OS X replacements (nor could
 I when resubmitting David's series [1] to use CommonCrypto).

 I am not a Mac person, but is this about APPLE_COMMON_CRYPTO support
 added in 4dcd7732 (Makefile: add support for Apple CommonCrypto
 facility, 2013-05-19) and be4c828b (imap-send: eliminate HMAC
 deprecation warnings on Mac OS X, 2013-05-19)?  Specifically, the
 log message for 4dcd7732 begins like so:

 Makefile: add support for Apple CommonCrypto facility

 As of Mac OS X 10.7, Apple deprecated all OpenSSL functions due to
 OpenSSL ABI instability, thus leading to build warnings.  As a
 replacement, Apple encourages developers to migrate to its own (stable)
 CommonCrypto facility.

 In the Makefile we seem to have this:

 # Define NO_APPLE_COMMON_CRYPTO if you are building on Darwin/Mac OS X
 # and do not want to use Apple's CommonCrypto library.  This allows you
 # to provide your own OpenSSL library, for example from MacPorts.

 which makes it sound like using APPLE_COMMON_CRYPTO is the default
 for Mac.  Perhaps those who do want to use CommonCrypto to avoid
 warnings should not define that macro?

 It's been a long time [1] since I looked at it, but I believe that
 David's CommonCrypto patch series only replaced OpenSSL calls for
 which Apple had provided CommonCrypto replacements. If my memory is
 correct, there were still plenty of OpenSSL deprecations warnings
 remaining after his patches (the warnings which started this thread)
 even without defining NO_APPLE_COMMON_CRYPTO. Thus, David's patches
 reduced the number of warnings but did not fully eliminate them.

 Checking again, it still seems to be the case that Apple neglects to
 provide CommonCrypto replacements for these OpenSSL functions which
 Apple itself deprecated.

 [1]: http://thread.gmane.org/gmane.comp.version-control.git/224833

Apologies, accidentally sent this from inbox the first time.

If there's actually no way to address this, is there a simple way to
silence deprecation warnings only in this file? I only ask because
overall the git build seems to be extremely quiet, and it seems
valuable to preserve that, so that warnings we want to act on stick
out.
--
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


Deprecation warnings under XCode

2014-11-30 Thread Michael Blume
I have no idea whether this should concern anyone, but my mac build of git shows

CC imap-send.o
imap-send.c:183:36: warning: 'ERR_error_string' is deprecated: first
deprecated in OS X 10.7 [-Wdeprecated-declarations]
fprintf(stderr, %s: %s\n, func,
ERR_error_string(ERR_get_error(), NULL));
  ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/openssl/err.h:279:7:
note: 'ERR_error_string' has been explicitly marked deprecated here
char *ERR_error_string(unsigned long e,char *buf)
DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER;
  ^
imap-send.c:183:53: warning: 'ERR_get_error' is deprecated: first
deprecated in OS X 10.7 [-Wdeprecated-declarations]
fprintf(stderr, %s: %s\n, func,
ERR_error_string(ERR_get_error(), NULL));
   ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/openssl/err.h:266:15:
note: 'ERR_get_error' has been explicitly marked deprecated here
unsigned long ERR_get_error(void) DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER;
  ^
imap-send.c:191:16: warning: 'SSL_get_error' is deprecated: first
deprecated in OS X 10.7 [-Wdeprecated-declarations]
int sslerr = SSL_get_error(sock-ssl, ret);
 ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/openssl/ssl.h:1506:5:
note: 'SSL_get_error' has been explicitly marked deprecated here
int SSL_get_error(const SSL *s,int ret_code)
DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER;
^
imap-send.c:243:24: warning: 'X509_get_ext_d2i' is deprecated: first
deprecated in OS X 10.7 [-Wdeprecated-declarations]
if ((subj_alt_names = X509_get_ext_d2i(cert,
NID_subject_alt_name, NULL, NULL))) {
  ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/openssl/x509.h:1151:8:
note: 'X509_get_ext_d2i' has been explicitly marked deprecated here
void*   X509_get_ext_d2i(X509 *x, int nid, int *crit, int
*idx) DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER;
^
imap-send.c:244:28: warning: 'sk_num' is deprecated: first deprecated
in OS X 10.7 [-Wdeprecated-declarations]
int num_subj_alt_names = sk_GENERAL_NAME_num(subj_alt_names);
 ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/openssl/safestack.h:684:33:
note: expanded from macro 'sk_GENERAL_NAME_num'
#define sk_GENERAL_NAME_num(st) SKM_sk_num(GENERAL_NAME, (st))
^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/openssl/safestack.h:168:2:
note: expanded from macro 'SKM_sk_num'
sk_num(st)
^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/openssl/stack.h:81:5:
note: 'sk_num' has been explicitly marked deprecated here
int sk_num(const STACK *) DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER;
^
imap-send.c:246:34: warning: 'sk_value' is deprecated: first
deprecated in OS X 10.7 [-Wdeprecated-declarations]
GENERAL_NAME *subj_alt_name =
sk_GENERAL_NAME_value(subj_alt_names, i);
  ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/openssl/safestack.h:685:38:
note: expanded from macro 'sk_GENERAL_NAME_value'
#define sk_GENERAL_NAME_value(st, i) SKM_sk_value(GENERAL_NAME, (st), (i))
 ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/openssl/safestack.h:170:11:
note: expanded from macro 'SKM_sk_value'
((type *)sk_value(st, i))
 ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/openssl/stack.h:82:7:
note: 'sk_value' has been explicitly marked deprecated here
char *sk_value(const STACK *, int)
DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER;
  ^
imap-send.c:252:3: warning: 'sk_pop_free' is deprecated: first
deprecated in OS X 10.7 [-Wdeprecated-declarations]
sk_GENERAL_NAME_pop_free(subj_alt_names, GENERAL_NAME_free);
^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/openssl/safestack.h:697:49:
note: expanded from macro 'sk_GENERAL_NAME_pop_free'
#define sk_GENERAL_NAME_pop_free(st, free_func)
SKM_sk_pop_free(GENERAL_NAME, (st), (free_func))
^

Re: [PATCH v2] allow TTY tests to run under recent Mac OS

2014-11-14 Thread Michael Blume
My understanding is that  and || have equal precedence, and this
seems to be borne out in testing at my shell. If the if/then method is
clearer I'm happy to go with that.

On Fri, Nov 14, 2014 at 11:23 AM, Johannes Sixt j...@kdbg.org wrote:
 Am 13.11.2014 um 23:40 schrieb Mike Blume:
 listed bug doesn't reproduce on Mac OS Yosemite. For now, just enable
 TTY on Yosemite and higher

 Signed-off-by: Mike Blume blume.m...@gmail.com
 Improved-by: Junio C Hamano gits...@pobox.com
 ---
  t/lib-terminal.sh | 5 -
  1 file changed, 4 insertions(+), 1 deletion(-)

 diff --git a/t/lib-terminal.sh b/t/lib-terminal.sh
 index 5184549..6395a34 100644
 --- a/t/lib-terminal.sh
 +++ b/t/lib-terminal.sh
 @@ -29,7 +29,10 @@ test_lazy_prereq TTY '
   # After 2000 iterations or so it hangs.
   # https://rt.cpan.org/Ticket/Display.html?id=65692
   #
 - test $(uname -s) != Darwin 
 + # Under Mac OS X 10.10.1 and Perl 5.18.2, this problem
 + # appears to be gone.
 + #
 + test $(uname -s) != Darwin || test $(uname -r | cut -d. -f1) -ge 
 14 

 This is part of an -chain; you can't just throw in a || in the middle.

 How about

 if test $(uname -s) = Darwin
 then
 test $(uname -r | cut -d. -f1) -ge 14
 fi 


   perl $TEST_DIRECTORY/test-terminal.perl \
   sh -c test -t 1  test -t 2


 -- Hannes

--
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] allow TTY tests to run under recent Mac OS

2014-11-14 Thread Michael Blume
Right, I missed that there was more going on above, thanks =)

On Fri, Nov 14, 2014 at 12:02 PM, Jeff King p...@peff.net wrote:
 On Fri, Nov 14, 2014 at 11:48:36AM -0800, Michael Blume wrote:

 My understanding is that  and || have equal precedence, and this
 seems to be borne out in testing at my shell. If the if/then method is
 clearer I'm happy to go with that.

 I think the problem is that there are earlier parts of the chain. It
 currently looks like:

   foo 
   bar 
   do_something

 but you are making it:

   foo 
   bar || baz 
   do_something

 which will do_something whether or not foo is true. You need to put
 your || at a lower precedence than the rest of the chain. The if
 that Johannes mentioned works, though I think

   test_have_prereq PERL 
   {
 test $(uname -s) != Darwin ||
 test $(uname -r | cut -d. -f1) -ge 13
   } 
   ...

 is more obvious to read (but that's subjective, of course).

 -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] allow TTY tests to run under recent Mac OS

2014-11-13 Thread Michael Blume
ah, sorry, didn't realize those were bash-only

On Thu, Nov 13, 2014 at 2:21 PM, Junio C Hamano gits...@pobox.com wrote:
 Mike Blume blume.m...@gmail.com writes:

 listed bug doesn't reproduce on Mac OS Yosemite. For now, just enable
 TTY on Yosemite and higher

 Signed-off-by: Mike Blume blume.m...@gmail.com
 ---
  t/lib-terminal.sh | 5 -
  1 file changed, 4 insertions(+), 1 deletion(-)

 diff --git a/t/lib-terminal.sh b/t/lib-terminal.sh
 index 5184549..1311ce0 100644
 --- a/t/lib-terminal.sh
 +++ b/t/lib-terminal.sh
 @@ -29,7 +29,10 @@ test_lazy_prereq TTY '
   # After 2000 iterations or so it hangs.
   # https://rt.cpan.org/Ticket/Display.html?id=65692
   #
 - test $(uname -s) != Darwin 
 + # Under Mac OS X 10.10.1 and Perl 5.18.2, this problem
 + # appears to be gone.
 + #
 + [[ test $(uname -s) != Darwin || test $(uname -r | cut -d. -f1) 
 -ge 14 ]] 

 This is designed to be a plain vanilla POSIX shell script.  Please
 avoid these double brackets.


   perl $TEST_DIRECTORY/test-terminal.perl \
   sh -c test -t 1  test -t 2
--
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


mac test failure -- 2gb clone

2014-11-12 Thread Michael Blume
This is in pu, haven't checked if it's also in master, this is the
first time I've run this test

$ GIT_TEST_CLONE_2GB=t ./t5705-clone-2gb.sh -v
Initialized empty Git repository in
/Users/michael.blume/workspace/git/t/trash
directory.t5705-clone-2gb/.git/
expecting success:

git config pack.compression 0 
git config pack.depth 0 
blobsize=$((100*1024*1024)) 
blobcount=$((2*1024*1024*1024/$blobsize+1)) 
i=1 
(while test $i -le $blobcount
do
printf Generating blob $i/$blobcount\r 2 
printf blob\nmark :$i\ndata $blobsize\n 
#test-genrandom $i $blobsize 
printf %-${blobsize}s $i 
echo M 100644 :$i $i  commit
i=$(($i+1)) ||
echo $?  exit-status
done 
echo commit refs/heads/master 
echo author A U Thor aut...@email.com 123456789 + 
echo committer C O Mitter commit...@email.com 123456789 + 
echo data 5 
echo 2gb 
cat commit) |
git fast-import --big-file-threshold=2 
test ! -f exit-status


git-fast-import statistics:
-
Alloc'd objects:   5000
Total objects:   23 ( 0 duplicates  )
  blobs  :   21 ( 0 duplicates  0 deltas
of  0 attempts)
  trees  :1 ( 0 duplicates  0 deltas
of  0 attempts)
  commits:1 ( 0 duplicates  0 deltas
of  0 attempts)
  tags   :0 ( 0 duplicates  0 deltas
of  0 attempts)
Total branches:   1 ( 1 loads )
  marks:   1024 (21 unique)
  atoms: 21
Memory total:  2344 KiB
   pools:  2110 KiB
 objects:   234 KiB
-
pack_report: getpagesize()=   4096
pack_report: core.packedGitWindowSize = 1073741824
pack_report: core.packedGitLimit  = 8589934592
pack_report: pack_used_ctr=  2
pack_report: pack_mmap_calls  =  1
pack_report: pack_open_windows=  1 /  1
pack_report: pack_mapped  =   54863024 /   54863024
-

ok 1 - setup

expecting success:

git clone --bare --no-hardlinks . clone-bare


Cloning into bare repository 'clone-bare'...
done.
ok 2 - clone - bare

expecting success:

git clone file://. clone-wt


Cloning into 'clone-wt'...
fatal: No path specified. See 'man git-pull' for valid url syntax
not ok 3 - clone - with worktree, file:// protocol
#
#
# git clone file://. clone-wt
#
#

# failed 1 among 3 test(s)
1..3
--
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: mac test failure -- 2gb clone

2014-11-12 Thread Michael Blume
Confirmed exists on master

On Wed, Nov 12, 2014 at 1:57 PM, Michael Blume blume.m...@gmail.com wrote:
 This is in pu, haven't checked if it's also in master, this is the
 first time I've run this test

 $ GIT_TEST_CLONE_2GB=t ./t5705-clone-2gb.sh -v
 Initialized empty Git repository in
 /Users/michael.blume/workspace/git/t/trash
 directory.t5705-clone-2gb/.git/
 expecting success:

 git config pack.compression 0 
 git config pack.depth 0 
 blobsize=$((100*1024*1024)) 
 blobcount=$((2*1024*1024*1024/$blobsize+1)) 
 i=1 
 (while test $i -le $blobcount
 do
 printf Generating blob $i/$blobcount\r 2 
 printf blob\nmark :$i\ndata $blobsize\n 
 #test-genrandom $i $blobsize 
 printf %-${blobsize}s $i 
 echo M 100644 :$i $i  commit
 i=$(($i+1)) ||
 echo $?  exit-status
 done 
 echo commit refs/heads/master 
 echo author A U Thor aut...@email.com 123456789 + 
 echo committer C O Mitter commit...@email.com 123456789 + 
 echo data 5 
 echo 2gb 
 cat commit) |
 git fast-import --big-file-threshold=2 
 test ! -f exit-status


 git-fast-import statistics:
 -
 Alloc'd objects:   5000
 Total objects:   23 ( 0 duplicates  )
   blobs  :   21 ( 0 duplicates  0 deltas
 of  0 attempts)
   trees  :1 ( 0 duplicates  0 deltas
 of  0 attempts)
   commits:1 ( 0 duplicates  0 deltas
 of  0 attempts)
   tags   :0 ( 0 duplicates  0 deltas
 of  0 attempts)
 Total branches:   1 ( 1 loads )
   marks:   1024 (21 unique)
   atoms: 21
 Memory total:  2344 KiB
pools:  2110 KiB
  objects:   234 KiB
 -
 pack_report: getpagesize()=   4096
 pack_report: core.packedGitWindowSize = 1073741824
 pack_report: core.packedGitLimit  = 8589934592
 pack_report: pack_used_ctr=  2
 pack_report: pack_mmap_calls  =  1
 pack_report: pack_open_windows=  1 /  1
 pack_report: pack_mapped  =   54863024 /   54863024
 -

 ok 1 - setup

 expecting success:

 git clone --bare --no-hardlinks . clone-bare


 Cloning into bare repository 'clone-bare'...
 done.
 ok 2 - clone - bare

 expecting success:

 git clone file://. clone-wt


 Cloning into 'clone-wt'...
 fatal: No path specified. See 'man git-pull' for valid url syntax
 not ok 3 - clone - with worktree, file:// protocol
 #
 #
 # git clone file://. clone-wt
 #
 #

 # failed 1 among 3 test(s)
 1..3
--
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


TTY tests are unnecessarily suppressed under Mac OS

2014-11-12 Thread Michael Blume
From lib_terminal.sh:

# Reading from the pty master seems to get stuck _sometimes_
# on Mac OS X 10.5.0, using Perl 5.10.0 or 5.8.9.
#
# Reproduction recipe: run
#
# i=0
# while ./test-terminal.perl echo hi $i
# do
# : $((i = $i + 1))
# done
#
# After 2000 iterations or so it hangs.
# https://rt.cpan.org/Ticket/Display.html?id=65692
#
test $(uname -s) != Darwin 

I tried the reproduction recipe on my mac and couldn't reproduce, so
it may make sense to take this switch out? In any case, I've set my
automated mac build to include TTY tests
--
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


mac test failure -- test 3301

2014-11-10 Thread Michael Blume
the commit modernizing test 3301
(https://github.com/git/git/commit/fbe4f74865acfd) appears to break it
on my mac

Verbose output follows:

$ ./t3301-notes.sh -v
Initialized empty Git repository in
/Users/michael.blume/workspace/git/t/trash directory.t3301-notes/.git/
expecting success:
test_must_fail env MSG=3 git notes add

fatal: Failed to resolve 'HEAD' as a valid ref.
ok 1 - cannot annotate non-existing HEAD

expecting success:
test_commit 1st 
test_commit 2nd

[master (root-commit) 04ed9a0] 1st
 Author: A U Thor aut...@example.com
 1 file changed, 1 insertion(+)
 create mode 100644 1st.t
[master 7a4ca6e] 2nd
 Author: A U Thor aut...@example.com
 1 file changed, 1 insertion(+)
 create mode 100644 2nd.t
ok 2 - setup

expecting success:
test_must_fail env MSG=1 GIT_NOTES_REF=/ git notes show 
test_must_fail env MSG=2 GIT_NOTES_REF=/ git notes show

fatal: Refusing to show notes in / (outside of refs/notes/)
fatal: Refusing to show notes in / (outside of refs/notes/)
ok 3 - need valid notes ref

expecting success:
test_must_fail env MSG=1 GIT_NOTES_REF=refs/heads/bogus git notes add

fatal: Refusing to add notes in refs/heads/bogus (outside of refs/notes/)
ok 4 - refusing to add notes in refs/heads/

expecting success:
test_must_fail env MSG=1 GIT_NOTES_REF=refs/heads/bogus git notes edit

fatal: Refusing to edit notes in refs/heads/bogus (outside of refs/notes/)
ok 5 - refusing to edit notes in refs/remotes/

expecting success:
test_expect_code 1 git notes show

error: No note found for object 7a4ca6ee52a974a66cbaa78e33214535dff1d691.
ok 6 - handle empty notes gracefully

expecting success:
test_write_lines A B expect 
git show -s --format=A%n%NB output 
test_cmp expect output

ok 7 - show non-existent notes entry with %N

expecting success:
MSG=b4 git notes add 
test_path_is_missing .git/NOTES_EDITMSG 
test 1 = $(git ls-tree refs/notes/commits | wc -l) 
test b4 = $(git notes show) 
git show HEAD^ 
test_must_fail git notes show HEAD^

b4
not ok 8 - create notes
#
# MSG=b4 git notes add 
# test_path_is_missing .git/NOTES_EDITMSG 
# test 1 = $(git ls-tree refs/notes/commits | wc -l) 
# test b4 = $(git notes show) 
# git show HEAD^ 
# test_must_fail git notes show HEAD^
#

expecting success:
test_write_lines A b4 B expect 
git show -s --format=A%n%NB output 
test_cmp expect output

ok 9 - show notes entry with %N

expecting success:
cat -EOF expect 
a1d8fa6 refs/notes/commits@{0}: notes: Notes added by 'git notes add'
EOF
git reflog show refs/notes/commits output 
test_cmp expect output

ok 10 - create reflog entry

expecting success:
MSG=b3 git notes edit 
test_path_is_missing .git/NOTES_EDITMSG 
test 1 = $(git ls-tree refs/notes/commits | wc -l) 
test b3 = $(git notes show) 
git show HEAD^ 
test_must_fail git notes show HEAD^

b3
not ok 11 - edit existing notes
#
# MSG=b3 git notes edit 
# test_path_is_missing .git/NOTES_EDITMSG 
# test 1 = $(git ls-tree refs/notes/commits | wc -l) 
# test b3 = $(git notes show) 
# git show HEAD^ 
# test_must_fail git notes show HEAD^
#

expecting success:
test_must_fail git notes add -m b2 
test_path_is_missing .git/NOTES_EDITMSG 
test 1 = $(git ls-tree refs/notes/commits | wc -l) 
test b3 = $(git notes show) 
git show HEAD^ 
test_must_fail git notes show HEAD^

error: Cannot add notes. Found existing notes for object
7a4ca6ee52a974a66cbaa78e33214535dff1d691. Use '-f' to overwrite
existing notes
not ok 12 - cannot git notes add -m where notes already exists
#
# test_must_fail git notes add -m b2 
# test_path_is_missing .git/NOTES_EDITMSG 
# test 1 = $(git ls-tree refs/notes/commits | wc -l) 
# test b3 = $(git notes show) 
# git show HEAD^ 
# test_must_fail git notes show HEAD^
#

expecting success:
git notes add -f -m b1 
test_path_is_missing .git/NOTES_EDITMSG 
test 1 = $(git ls-tree refs/notes/commits | wc -l) 
test b1 = $(git notes show) 
git show HEAD^ 
test_must_fail git notes show HEAD^

Overwriting existing notes for object 7a4ca6ee52a974a66cbaa78e33214535dff1d691
not ok 13 - can overwrite existing note with git notes add -f -m
#
# git notes add -f -m b1 
# test_path_is_missing .git/NOTES_EDITMSG 
# test 1 = $(git ls-tree refs/notes/commits | wc -l) 
# test b1 = $(git notes show) 
# git show HEAD^ 
# test_must_fail git notes show HEAD^
#

expecting success:
MSG=b2 git notes add 
test_path_is_missing .git/NOTES_EDITMSG 
test 1 = $(git ls-tree refs/notes/commits | wc -l) 
test b2 = $(git notes show) 
git show HEAD^ 
test_must_fail git notes show HEAD^

b2
not ok 14 - add w/no options on existing note morphs into edit
#
# MSG=b2 git notes add 
# test_path_is_missing .git/NOTES_EDITMSG 
# test 1 = $(git ls-tree refs/notes/commits | wc -l) 
# test b2 = $(git notes show) 
# git show HEAD^ 
# test_must_fail git notes show HEAD^
#

expecting success:
MSG=b1 git notes add -f 
test_path_is_missing .git/NOTES_EDITMSG 
test 1 = $(git ls-tree refs/notes/commits | wc -l) 
test b1 = $(git notes show) 
git show HEAD^ 
test_must_fail git notes show HEAD^

Overwriting existing 

Re: mac test failure -- test 3301

2014-11-10 Thread Michael Blume
(to be clear: I ran git bisect, and traced the problem to the modernize commit)

On Mon, Nov 10, 2014 at 4:17 PM, Michael Blume blume.m...@gmail.com wrote:
 the commit modernizing test 3301
 (https://github.com/git/git/commit/fbe4f74865acfd) appears to break it
 on my mac

 Verbose output follows:

 $ ./t3301-notes.sh -v
 Initialized empty Git repository in
 /Users/michael.blume/workspace/git/t/trash directory.t3301-notes/.git/
 expecting success:
 test_must_fail env MSG=3 git notes add

 fatal: Failed to resolve 'HEAD' as a valid ref.
 ok 1 - cannot annotate non-existing HEAD

 expecting success:
 test_commit 1st 
 test_commit 2nd

 [master (root-commit) 04ed9a0] 1st
  Author: A U Thor aut...@example.com
  1 file changed, 1 insertion(+)
  create mode 100644 1st.t
 [master 7a4ca6e] 2nd
  Author: A U Thor aut...@example.com
  1 file changed, 1 insertion(+)
  create mode 100644 2nd.t
 ok 2 - setup

 expecting success:
 test_must_fail env MSG=1 GIT_NOTES_REF=/ git notes show 
 test_must_fail env MSG=2 GIT_NOTES_REF=/ git notes show

 fatal: Refusing to show notes in / (outside of refs/notes/)
 fatal: Refusing to show notes in / (outside of refs/notes/)
 ok 3 - need valid notes ref

 expecting success:
 test_must_fail env MSG=1 GIT_NOTES_REF=refs/heads/bogus git notes add

 fatal: Refusing to add notes in refs/heads/bogus (outside of refs/notes/)
 ok 4 - refusing to add notes in refs/heads/

 expecting success:
 test_must_fail env MSG=1 GIT_NOTES_REF=refs/heads/bogus git notes edit

 fatal: Refusing to edit notes in refs/heads/bogus (outside of refs/notes/)
 ok 5 - refusing to edit notes in refs/remotes/

 expecting success:
 test_expect_code 1 git notes show

 error: No note found for object 7a4ca6ee52a974a66cbaa78e33214535dff1d691.
 ok 6 - handle empty notes gracefully

 expecting success:
 test_write_lines A B expect 
 git show -s --format=A%n%NB output 
 test_cmp expect output

 ok 7 - show non-existent notes entry with %N

 expecting success:
 MSG=b4 git notes add 
 test_path_is_missing .git/NOTES_EDITMSG 
 test 1 = $(git ls-tree refs/notes/commits | wc -l) 
 test b4 = $(git notes show) 
 git show HEAD^ 
 test_must_fail git notes show HEAD^

 b4
 not ok 8 - create notes
 #
 # MSG=b4 git notes add 
 # test_path_is_missing .git/NOTES_EDITMSG 
 # test 1 = $(git ls-tree refs/notes/commits | wc -l) 
 # test b4 = $(git notes show) 
 # git show HEAD^ 
 # test_must_fail git notes show HEAD^
 #

 expecting success:
 test_write_lines A b4 B expect 
 git show -s --format=A%n%NB output 
 test_cmp expect output

 ok 9 - show notes entry with %N

 expecting success:
 cat -EOF expect 
 a1d8fa6 refs/notes/commits@{0}: notes: Notes added by 'git notes add'
 EOF
 git reflog show refs/notes/commits output 
 test_cmp expect output

 ok 10 - create reflog entry

 expecting success:
 MSG=b3 git notes edit 
 test_path_is_missing .git/NOTES_EDITMSG 
 test 1 = $(git ls-tree refs/notes/commits | wc -l) 
 test b3 = $(git notes show) 
 git show HEAD^ 
 test_must_fail git notes show HEAD^

 b3
 not ok 11 - edit existing notes
 #
 # MSG=b3 git notes edit 
 # test_path_is_missing .git/NOTES_EDITMSG 
 # test 1 = $(git ls-tree refs/notes/commits | wc -l) 
 # test b3 = $(git notes show) 
 # git show HEAD^ 
 # test_must_fail git notes show HEAD^
 #

 expecting success:
 test_must_fail git notes add -m b2 
 test_path_is_missing .git/NOTES_EDITMSG 
 test 1 = $(git ls-tree refs/notes/commits | wc -l) 
 test b3 = $(git notes show) 
 git show HEAD^ 
 test_must_fail git notes show HEAD^

 error: Cannot add notes. Found existing notes for object
 7a4ca6ee52a974a66cbaa78e33214535dff1d691. Use '-f' to overwrite
 existing notes
 not ok 12 - cannot git notes add -m where notes already exists
 #
 # test_must_fail git notes add -m b2 
 # test_path_is_missing .git/NOTES_EDITMSG 
 # test 1 = $(git ls-tree refs/notes/commits | wc -l) 
 # test b3 = $(git notes show) 
 # git show HEAD^ 
 # test_must_fail git notes show HEAD^
 #

 expecting success:
 git notes add -f -m b1 
 test_path_is_missing .git/NOTES_EDITMSG 
 test 1 = $(git ls-tree refs/notes/commits | wc -l) 
 test b1 = $(git notes show) 
 git show HEAD^ 
 test_must_fail git notes show HEAD^

 Overwriting existing notes for object 7a4ca6ee52a974a66cbaa78e33214535dff1d691
 not ok 13 - can overwrite existing note with git notes add -f -m
 #
 # git notes add -f -m b1 
 # test_path_is_missing .git/NOTES_EDITMSG 
 # test 1 = $(git ls-tree refs/notes/commits | wc -l) 
 # test b1 = $(git notes show) 
 # git show HEAD^ 
 # test_must_fail git notes show HEAD^
 #

 expecting success:
 MSG=b2 git notes add 
 test_path_is_missing .git/NOTES_EDITMSG 
 test 1 = $(git ls-tree refs/notes/commits | wc -l) 
 test b2 = $(git notes show) 
 git show HEAD^ 
 test_must_fail git notes show HEAD^

 b2
 not ok 14 - add w/no options on existing note morphs into edit
 #
 # MSG=b2 git notes add 
 # test_path_is_missing .git/NOTES_EDITMSG 
 # test 1 = $(git ls-tree refs/notes/commits | wc -l) 
 # test b2 = $(git notes show

Re: mac test failure -- test 3301

2014-11-10 Thread Michael Blume
my first thought was that this might be a bash versioning issue, since
the commit in question basically refactors the script, and macs ship
with an archaic version of bash, but I have the same problem with bash
4.3.30

On Mon, Nov 10, 2014 at 4:23 PM, Michael Blume blume.m...@gmail.com wrote:
 (to be clear: I ran git bisect, and traced the problem to the modernize 
 commit)

 On Mon, Nov 10, 2014 at 4:17 PM, Michael Blume blume.m...@gmail.com wrote:
 the commit modernizing test 3301
 (https://github.com/git/git/commit/fbe4f74865acfd) appears to break it
 on my mac

 Verbose output follows:

 $ ./t3301-notes.sh -v
 Initialized empty Git repository in
 /Users/michael.blume/workspace/git/t/trash directory.t3301-notes/.git/
 expecting success:
 test_must_fail env MSG=3 git notes add

 fatal: Failed to resolve 'HEAD' as a valid ref.
 ok 1 - cannot annotate non-existing HEAD

 expecting success:
 test_commit 1st 
 test_commit 2nd

 [master (root-commit) 04ed9a0] 1st
  Author: A U Thor aut...@example.com
  1 file changed, 1 insertion(+)
  create mode 100644 1st.t
 [master 7a4ca6e] 2nd
  Author: A U Thor aut...@example.com
  1 file changed, 1 insertion(+)
  create mode 100644 2nd.t
 ok 2 - setup

 expecting success:
 test_must_fail env MSG=1 GIT_NOTES_REF=/ git notes show 
 test_must_fail env MSG=2 GIT_NOTES_REF=/ git notes show

 fatal: Refusing to show notes in / (outside of refs/notes/)
 fatal: Refusing to show notes in / (outside of refs/notes/)
 ok 3 - need valid notes ref

 expecting success:
 test_must_fail env MSG=1 GIT_NOTES_REF=refs/heads/bogus git notes add

 fatal: Refusing to add notes in refs/heads/bogus (outside of refs/notes/)
 ok 4 - refusing to add notes in refs/heads/

 expecting success:
 test_must_fail env MSG=1 GIT_NOTES_REF=refs/heads/bogus git notes edit

 fatal: Refusing to edit notes in refs/heads/bogus (outside of refs/notes/)
 ok 5 - refusing to edit notes in refs/remotes/

 expecting success:
 test_expect_code 1 git notes show

 error: No note found for object 7a4ca6ee52a974a66cbaa78e33214535dff1d691.
 ok 6 - handle empty notes gracefully

 expecting success:
 test_write_lines A B expect 
 git show -s --format=A%n%NB output 
 test_cmp expect output

 ok 7 - show non-existent notes entry with %N

 expecting success:
 MSG=b4 git notes add 
 test_path_is_missing .git/NOTES_EDITMSG 
 test 1 = $(git ls-tree refs/notes/commits | wc -l) 
 test b4 = $(git notes show) 
 git show HEAD^ 
 test_must_fail git notes show HEAD^

 b4
 not ok 8 - create notes
 #
 # MSG=b4 git notes add 
 # test_path_is_missing .git/NOTES_EDITMSG 
 # test 1 = $(git ls-tree refs/notes/commits | wc -l) 
 # test b4 = $(git notes show) 
 # git show HEAD^ 
 # test_must_fail git notes show HEAD^
 #

 expecting success:
 test_write_lines A b4 B expect 
 git show -s --format=A%n%NB output 
 test_cmp expect output

 ok 9 - show notes entry with %N

 expecting success:
 cat -EOF expect 
 a1d8fa6 refs/notes/commits@{0}: notes: Notes added by 'git notes add'
 EOF
 git reflog show refs/notes/commits output 
 test_cmp expect output

 ok 10 - create reflog entry

 expecting success:
 MSG=b3 git notes edit 
 test_path_is_missing .git/NOTES_EDITMSG 
 test 1 = $(git ls-tree refs/notes/commits | wc -l) 
 test b3 = $(git notes show) 
 git show HEAD^ 
 test_must_fail git notes show HEAD^

 b3
 not ok 11 - edit existing notes
 #
 # MSG=b3 git notes edit 
 # test_path_is_missing .git/NOTES_EDITMSG 
 # test 1 = $(git ls-tree refs/notes/commits | wc -l) 
 # test b3 = $(git notes show) 
 # git show HEAD^ 
 # test_must_fail git notes show HEAD^
 #

 expecting success:
 test_must_fail git notes add -m b2 
 test_path_is_missing .git/NOTES_EDITMSG 
 test 1 = $(git ls-tree refs/notes/commits | wc -l) 
 test b3 = $(git notes show) 
 git show HEAD^ 
 test_must_fail git notes show HEAD^

 error: Cannot add notes. Found existing notes for object
 7a4ca6ee52a974a66cbaa78e33214535dff1d691. Use '-f' to overwrite
 existing notes
 not ok 12 - cannot git notes add -m where notes already exists
 #
 # test_must_fail git notes add -m b2 
 # test_path_is_missing .git/NOTES_EDITMSG 
 # test 1 = $(git ls-tree refs/notes/commits | wc -l) 
 # test b3 = $(git notes show) 
 # git show HEAD^ 
 # test_must_fail git notes show HEAD^
 #

 expecting success:
 git notes add -f -m b1 
 test_path_is_missing .git/NOTES_EDITMSG 
 test 1 = $(git ls-tree refs/notes/commits | wc -l) 
 test b1 = $(git notes show) 
 git show HEAD^ 
 test_must_fail git notes show HEAD^

 Overwriting existing notes for object 
 7a4ca6ee52a974a66cbaa78e33214535dff1d691
 not ok 13 - can overwrite existing note with git notes add -f -m
 #
 # git notes add -f -m b1 
 # test_path_is_missing .git/NOTES_EDITMSG 
 # test 1 = $(git ls-tree refs/notes/commits | wc -l) 
 # test b1 = $(git notes show) 
 # git show HEAD^ 
 # test_must_fail git notes show HEAD^
 #

 expecting success:
 MSG=b2 git notes add 
 test_path_is_missing .git/NOTES_EDITMSG 
 test 1 = $(git ls-tree refs/notes/commits | wc -l) 
 test b2

Re: mac test failure -- test 3301

2014-11-10 Thread Michael Blume
If quoting is generally preferred as a best practice, we could force
wc to behave more consistently before we start testing

diff --git a/t/test-lib-functions.sh b/t/test-lib-functions.sh
index 0d93e33..57ed608 100644
--- a/t/test-lib-functions.sh
+++ b/t/test-lib-functions.sh
@@ -515,6 +515,14 @@ test_path_is_missing () {
  fi
 }

+# Some platforms disagree about wc output format.
+
+SYS_WC=$(which wc)
+
+wc () {
+ $SYS_WC $@ | sed -e 's/^ *//' -e 's/ *$//'
+}
+
 # test_line_count checks that a file has the number of lines it
 # ought to. For example:
 #

On Mon, Nov 10, 2014 at 5:40 PM, Johan Herland jo...@herland.net wrote:
 On Tue, Nov 11, 2014 at 2:19 AM, Eric Sunshine sunsh...@sunshineco.com 
 wrote:
 On Mon, Nov 10, 2014 at 7:17 PM, Michael Blume blume.m...@gmail.com wrote:
 the commit modernizing test 3301
 (https://github.com/git/git/commit/fbe4f74865acfd) appears to break it
 on my mac

 $ ./t3301-notes.sh -v
 expecting success:
 MSG=b4 git notes add 
 test_path_is_missing .git/NOTES_EDITMSG 
 test 1 = $(git ls-tree refs/notes/commits | wc -l) 
 test b4 = $(git notes show) 
 git show HEAD^ 
 test_must_fail git notes show HEAD^

 b4
 not ok 8 - create notes

 This and all other failures are due to the output of 'wc -l', which on
 Mac is {whitespace}1 rather than just 1 as it is on other
 platforms. fbe4f748 added quotes around the $(... | wc -l) invocation
 which caused the whitespace to be retained. A minimum fix would be to
 drop the quotes surrounding $().

 Ah, thanks!

 I thought that quoting command output was a good idea in general. Am I
 wrong, or is this just one exception to an otherwise good guideline?

 Anyway, here is the minimal diff to remove quoting from the $(... | wc
 -l) commands (probably whitespace damaged by GMail - sorry). Junio:
 feel free to squash this in, or ask for a re-roll:

 diff --git a/t/t3301-notes.sh b/t/t3301-notes.sh
 index cd756ec..2c8abbc 100755
 --- a/t/t3301-notes.sh
 +++ b/t/t3301-notes.sh
 @@ -52,7 +52,7 @@ test_expect_success 'show non-existent notes entry with %N' 
 '
  test_expect_success 'create notes' '
  MSG=b4 git notes add 
  test_path_is_missing .git/NOTES_EDITMSG 
 -test 1 = $(git ls-tree refs/notes/commits | wc -l) 
 +test 1 = $(git ls-tree refs/notes/commits | wc -l) 
  test b4 = $(git notes show) 
  git show HEAD^ 
  test_must_fail git notes show HEAD^
 @@ -75,7 +75,7 @@ test_expect_success 'create reflog entry' '
  test_expect_success 'edit existing notes' '
  MSG=b3 git notes edit 
  test_path_is_missing .git/NOTES_EDITMSG 
 -test 1 = $(git ls-tree refs/notes/commits | wc -l) 
 +test 1 = $(git ls-tree refs/notes/commits | wc -l) 
  test b3 = $(git notes show) 
  git show HEAD^ 
  test_must_fail git notes show HEAD^
 @@ -84,7 +84,7 @@ test_expect_success 'edit existing notes' '
  test_expect_success 'cannot git notes add -m where notes already exists' '
  test_must_fail git notes add -m b2 
  test_path_is_missing .git/NOTES_EDITMSG 
 -test 1 = $(git ls-tree refs/notes/commits | wc -l) 
 +test 1 = $(git ls-tree refs/notes/commits | wc -l) 
  test b3 = $(git notes show) 
  git show HEAD^ 
  test_must_fail git notes show HEAD^
 @@ -93,7 +93,7 @@ test_expect_success 'cannot git notes add -m where
 notes already exists' '
  test_expect_success 'can overwrite existing note with git notes add -f -m' 
 '
  git notes add -f -m b1 
  test_path_is_missing .git/NOTES_EDITMSG 
 -test 1 = $(git ls-tree refs/notes/commits | wc -l) 
 +test 1 = $(git ls-tree refs/notes/commits | wc -l) 
  test b1 = $(git notes show) 
  git show HEAD^ 
  test_must_fail git notes show HEAD^
 @@ -102,7 +102,7 @@ test_expect_success 'can overwrite existing note
 with git notes add -f -m' '
  test_expect_success 'add w/no options on existing note morphs into edit' '
  MSG=b2 git notes add 
  test_path_is_missing .git/NOTES_EDITMSG 
 -test 1 = $(git ls-tree refs/notes/commits | wc -l) 
 +test 1 = $(git ls-tree refs/notes/commits | wc -l) 
  test b2 = $(git notes show) 
  git show HEAD^ 
  test_must_fail git notes show HEAD^
 @@ -111,7 +111,7 @@ test_expect_success 'add w/no options on existing
 note morphs into edit' '
  test_expect_success 'can overwrite existing note with git notes add -f' '
  MSG=b1 git notes add -f 
  test_path_is_missing .git/NOTES_EDITMSG 
 -test 1 = $(git ls-tree refs/notes/commits | wc -l) 
 +test 1 = $(git ls-tree refs/notes/commits | wc -l) 
  test b1 = $(git notes show) 
  git show HEAD^ 
  test_must_fail git notes show HEAD^


 ...Johan

 --
 Johan Herland, jo...@herland.net
 www.herland.net
--
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] t1410: fix breakage on case-insensitive filesystems

2014-11-09 Thread Michael Blume
Works for me, thanks =)

I'm curious now, is there an automated build of git running on a mac
anywhere? There's a mac mini running jenkins in my office and it's
possible I could convince someone to let me set up a git build that'll
e-mail me if there's a test failure.

On Sat, Nov 8, 2014 at 5:59 PM, Jeff King p...@peff.net wrote:
 On Sat, Nov 08, 2014 at 08:43:54PM -0500, Jeff King wrote:

 Unfortunately I don't have an OS X install handy to test on.

 I lied; it turns out I still had access to an old VM. The problem did
 turn out to be rather silly. Here's a patch.

 -- 8 --
 Two tests recently added to t1410 create branches a and
 a/b to test d/f conflicts on reflogs. Earlier, unrelated
 tests in that script create the path A/B in the working
 tree.  There's no conflict on a case-sensitive filesystem,
 but on a case-insensitive one, git log will complain that
 a/b is both a revision and a working tree path.

 We could fix this by using a -- to disambiguate, but we
 are probably better off using names that are less confusing
 to make it more clear that they are unrelated to the working
 tree files.  This patch turns a/b into one/two.

 Reported-by: Michael Blume blume.m...@gmail.com
 Signed-off-by: Jeff King p...@peff.net
 ---
 The line-diff is hard to read, but if anyone was looking for a chance to
 test-drive contrib/diff-highlight, it does a good job of making the
 change easy to see.

  t/t1410-reflog.sh | 36 ++--
  1 file changed, 18 insertions(+), 18 deletions(-)

 diff --git a/t/t1410-reflog.sh b/t/t1410-reflog.sh
 index 976c1d4..8cf4461 100755
 --- a/t/t1410-reflog.sh
 +++ b/t/t1410-reflog.sh
 @@ -254,36 +254,36 @@ test_expect_success 'checkout should not delete log for 
 packed ref' '
  '

  test_expect_success 'stale dirs do not cause d/f conflicts (reflogs on)' '
 -   test_when_finished git branch -d a || git branch -d a/b 
 +   test_when_finished git branch -d one || git branch -d one/two 

 -   git branch a/b master 
 -   echo a/b@{0} branch: Created from master expect 
 -   git log -g --format=%gd %gs a/b actual 
 +   git branch one/two master 
 +   echo one/two@{0} branch: Created from master expect 
 +   git log -g --format=%gd %gs one/two actual 
 test_cmp expect actual 
 -   git branch -d a/b 
 +   git branch -d one/two 

 -   # now logs/refs/heads/a is a stale directory, but
 -   # we should move it out of the way to create a reflog
 -   git branch a master 
 -   echo a@{0} branch: Created from master expect 
 -   git log -g --format=%gd %gs a actual 
 +   # now logs/refs/heads/one is a stale directory, but
 +   # we should move it out of the way to create one reflog
 +   git branch one master 
 +   echo one@{0} branch: Created from master expect 
 +   git log -g --format=%gd %gs one actual 
 test_cmp expect actual
  '

  test_expect_success 'stale dirs do not cause d/f conflicts (reflogs off)' '
 -   test_when_finished git branch -d a || git branch -d a/b 
 +   test_when_finished git branch -d one || git branch -d one/two 

 -   git branch a/b master 
 -   echo a/b@{0} branch: Created from master expect 
 -   git log -g --format=%gd %gs a/b actual 
 +   git branch one/two master 
 +   echo one/two@{0} branch: Created from master expect 
 +   git log -g --format=%gd %gs one/two actual 
 test_cmp expect actual 
 -   git branch -d a/b 
 +   git branch -d one/two 

 -   # same as before, but we only create a reflog for a if
 +   # same as before, but we only create a reflog for one if
 # it already exists, which it does not
 -   git -c core.logallrefupdates=false branch a master 
 +   git -c core.logallrefupdates=false branch one master 
 : expect 
 -   git log -g --format=%gd %gs a actual 
 +   git log -g --format=%gd %gs one actual 
 test_cmp expect actual
  '

 --
 2.1.2.596.g7379948

--
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] t1410: fix breakage on case-insensitive filesystems

2014-11-09 Thread Michael Blume
Actually I have a build break in pu on my mac right now. Seems to
build fine in ubuntu, but:

progress.c:66:15: error: use of undeclared identifier 'CLOCK_MONOTONIC'
timer_create(CLOCK_MONOTONIC, sev, progress_timer);
 ^
./git-compat-util.h:233:54: note: expanded from macro 'timer_create'
#define timer_create(clockid, sevp, timerp) ((void) (clockid), (void) (s...
 ^
progress.c:71:2: warning: incompatible pointer to integer conversion assigning
  to '__darwin_time_t' (aka 'long') from '__darwin_time_t *' (aka 'long *');
  remove  [-Wint-conversion]
timer_settime(progress_timer, 0, value, NULL);
^~
./git-compat-util.h:242:29: note: expanded from macro 'timer_settime'
_ivalue.it_interval.tv_sec = value.it_interval.tv_sec;
 \
   ^ 
progress.c:71:2: error: invalid operands to binary expression
  ('long *' and 'long')
timer_settime(progress_timer, 0, value, NULL);
^~
./git-compat-util.h:243:58: note: expanded from macro 'timer_settime'
_ivalue.it_interval.tv_usec = value.it_interval.tv_nsec /
1000L;\
  ~ ^ ~
progress.c:71:2: error: use of undeclared identifier '_ivalue_it_value'
./git-compat-util.h:245:2: note: expanded from macro 'timer_settime'
_ivalue_it_value.tv_usec = value.it_value.tv_nsec / 1000L...
^
progress.c:71:2: error: invalid operands to binary expression
  ('long *' and 'long')
timer_settime(progress_timer, 0, value, NULL);
^~
./git-compat-util.h:245:52: note: expanded from macro 'timer_settime'
_ivalue_it_value.tv_usec = value.it_value.tv_nsec / 1000L;
 \
   ~~ ^ ~
progress.c:71:35: warning: expression result unused [-Wunused-value]
timer_settime(progress_timer, 0, value, NULL);
~^
./git-compat-util.h:244:27: note: expanded from macro 'timer_settime'
_ivalue.it_value.tv_sec  value.it_value.tv_sec...
 ^
progress.c:74:1: error: expected 'while' in do/while loop
static void clear_progress_signal(void)
^
progress.c:71:2: note: to match this 'do'
timer_settime(progress_timer, 0, value, NULL);
^
./git-compat-util.h:240:52: note: expanded from macro 'timer_settime'
  ...flags, value, ovalue) do { \
   ^
progress.c:264:2: error: expected '}'
}
 ^
progress.c:50:1: note: to match this '{'
{
^
2 warnings and 6 errors generated.
make: *** [progress.o] Error 1

On Sun, Nov 9, 2014 at 12:04 PM, Torsten Bögershausen tbo...@web.de wrote:
 On 09.11.14 18:34, Michael Blume wrote:
 Works for me, thanks =)

 I'm curious now, is there an automated build of git running on a mac
 anywhere? There's a mac mini running jenkins in my office and it's
 possible I could convince someone to let me set up a git build that'll
 e-mail me if there's a test failure.

 The basic idea is to run
 make clean 
 git fetch git.git 
 git checkout git.git/pu 
 make -k test

 (and pipe stdlog+stdout into a file)

 I have a script here doing that, if you want, I can send it to you





--
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] t1410: fix breakage on case-insensitive filesystems

2014-11-09 Thread Michael Blume
 resolved
#
# git log -1 -p --remerge-diff benign output 
# clean_output output actual 
# test_cmp expected actual
#

expecting success:
git log -1 --remerge-diff -p evil output 
clean_output output actual 
test_cmp expected actual

--- expected 2014-11-10 02:43:34.0 +
+++ actual 2014-11-10 02:43:34.0 +
@@ -1,12 +1,12 @@
 commit evil
-Merge:
+Merge: a3cd1bc 61d2ae1
 Author: A U Thor aut...@example.com
-Date:
+Date:   Thu Apr 7 15:18:13 2005 -0700

 M2

 diff --git a/file b/file
-index
+index cc073fb..0835e4f 100644
 --- a/file
 +++ b/file
 @@ -1,5 +1 @@
not ok 4 - evil merge: changes ignored
#
# git log -1 --remerge-diff -p evil output 
# clean_output output actual 
# test_cmp expected actual
#

expecting success:
git log -1 --remerge-diff -p dm output 
clean_output output actual 
test_cmp expected actual

--- expected 2014-11-10 02:43:34.0 +
+++ actual 2014-11-10 02:43:34.0 +
@@ -1,12 +1,12 @@
 commit dm
-Merge:
+Merge: 61d2ae1 63d1471
 Author: A U Thor aut...@example.com
-Date:
+Date:   Thu Apr 7 15:19:13 2005 -0700

 M3

 diff --git a/file b/file
-index
+index dd79d22..2ab19ae 100644
 --- a/file
 +++ b/file
 @@ -1,4 +1 @@
not ok 5 - delete/modify conflict
#
# git log -1 --remerge-diff -p dm output 
# clean_output output actual 
# test_cmp expected actual
#

expecting success:
git log -1 --remerge-diff -p dirfile output 
clean_output output actual 
test_cmp expected actual

--- expected 2014-11-10 02:43:35.0 +
+++ actual 2014-11-10 02:43:35.0 +
@@ -1,12 +1,12 @@
 commit dirfile
-Merge:
+Merge: 8ac24b8 36416b6
 Author: A U Thor aut...@example.com
-Date:
+Date:   Thu Apr 7 15:24:13 2005 -0700

 M5

 diff --git a/sub/file b/sub/file
-index
+index 0d2ecd7..2ab19ae 100644
 --- a/sub/file
 +++ b/sub/file
 @@ -1 +1 @@
@@ -14,7 +14,7 @@
 +resolved
 diff --git a/sub~tags/file b/sub~tags/file
 deleted file mode 100644
-index
+index f73f309..000
 --- a/sub~tags/file
 +++ /dev/null
 @@ -1 +0,0 @@
not ok 6 - file/directory conflict resulting in directory
#
# git log -1 --remerge-diff -p dirfile output 
# clean_output output actual 
# test_cmp expected actual
#

checking known breakage:
git log -1 --remerge-diff -p filedir output 
clean_output output actual 
test_cmp expected actual

--- expected 2014-11-10 02:43:35.0 +
+++ actual 2014-11-10 02:43:35.0 +
@@ -1,21 +1,28 @@
 commit filedir
-Merge:
+Merge: 36416b6 8ac24b8
 Author: A U Thor aut...@example.com
-Date:
+Date:   Thu Apr 7 15:25:13 2005 -0700

 M6

 diff --git a/sub b/sub
-index
 a/sub
+new file mode 100644
+index 000..2ab19ae
+--- /dev/null
 +++ b/sub
-@@ -1 +1 @@
--file
+@@ -0,0 +1 @@
 +resolved
 diff --git a/sub/file b/sub/file
 deleted file mode 100644
-index
+index 0d2ecd7..000
 --- a/sub/file
 +++ /dev/null
 @@ -1 +0,0 @@
 -dir
+diff --git a/sub~tags/file b/sub~tags/file
+deleted file mode 100644
+index f73f309..000
+--- a/sub~tags/file
 /dev/null
+@@ -1 +0,0 @@
+-file
not ok 7 - file/directory conflict resulting in file # TODO known breakage

# still have 1 known breakage(s)
# failed 4 among remaining 6 test(s)
1..7

On Sun, Nov 9, 2014 at 1:42 PM, Torsten Bögershausen tbo...@web.de wrote:
 On 2014-11-09 22.36, Michael Blume wrote:
 Actually I have a build break in pu on my mac right now. Seems to
 build fine in ubuntu, but:

 progress.c:66:15: error: use of undeclared identifier 'CLOCK_MONOTONIC'
 timer_create(CLOCK_MONOTONIC, sev, progress_timer);
 That is not an unkown issue.
 You need to revert one commit (this is my copy of pu from today)

  Revert use timer_settime() for new platforms

  This reverts commit 0950f08806208b4e3d0aff5f4f7d497637ba4cab.

--
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


Test failure

2014-11-08 Thread Michael Blume
I'm on a macbook running a beta of Mac OS Yosemite 10.10.1. I've never
been able to get GETTEXT to work so I have

NO_GETTEXT=1

in my makefile, but other than that I'm using the master branch of the
official github mirror.

When I build and run tests I get

[11:17][michael.blume@tcc-michael-4:~/workspace/git/t(master)]$
./t1410-reflog.sh
ok 1 - setup
ok 2 - rewind
ok 3 - corrupt and check
ok 4 - reflog expire --dry-run should not touch reflog
ok 5 - reflog expire
ok 6 - prune and fsck
ok 7 - recover and check
ok 8 - delete
ok 9 - rewind2
ok 10 - --expire=never
ok 11 - gc.reflogexpire=never
ok 12 - gc.reflogexpire=false
ok 13 - checkout should not delete log for packed ref
not ok 14 - stale dirs do not cause d/f conflicts (reflogs on)
#
# test_when_finished git branch -d a || git branch -d a/b 
#
# git branch a/b master 
# echo a/b@{0} branch: Created from master expect 
# git log -g --format=%gd %gs a/b actual 
# test_cmp expect actual 
# git branch -d a/b 
#
# # now logs/refs/heads/a is a stale directory, but
# # we should move it out of the way to create a reflog
# git branch a master 
# echo a@{0} branch: Created from master expect 
# git log -g --format=%gd %gs a actual 
# test_cmp expect actual
#
not ok 15 - stale dirs do not cause d/f conflicts (reflogs off)
#
# test_when_finished git branch -d a || git branch -d a/b 
#
# git branch a/b master 
# echo a/b@{0} branch: Created from master expect 
# git log -g --format=%gd %gs a/b actual 
# test_cmp expect actual 
# git branch -d a/b 
#
# # same as before, but we only create a reflog for a if
# # it already exists, which it does not
# git -c core.logallrefupdates=false branch a master 
# : expect 
# git log -g --format=%gd %gs a actual 
# test_cmp expect actual
#
# failed 2 among 15 test(s)

(I get the same thing with 'make test' but this is me just running the
problematic test)

A quick search seems to indicate the test is pretty new?
http://www.mail-archive.com/git@vger.kernel.org/msg60495.html

Test passes in my ubuntu vm.
--
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: Test failure

2014-11-08 Thread Michael Blume
 $master_entry_count = 5 


git reflog delete master@{1} 
git reflog show master  output 
test $(($master_entry_count - 1)) = $(wc -l  output) 
test $HEAD_entry_count = $(git reflog | wc -l) 
! grep ox  output 

master_entry_count=$(wc -l  output) 

git reflog delete HEAD@{1} 
test $(($HEAD_entry_count -1)) = $(git reflog | wc -l) 
test $master_entry_count = $(git reflog show master | wc -l) 

HEAD_entry_count=$(git reflog | wc -l) 

git reflog delete master@{07.04.2005.15:15:00.-0700} 
git reflog show master  output 
test $(($master_entry_count - 1)) = $(wc -l  output) 
! grep dragon  output


[master b60a214] rat
 Author: A U Thor aut...@example.com
 1 file changed, 1 insertion(+), 1 deletion(-)
[master 9908ef9] ox
 Author: A U Thor aut...@example.com
 1 file changed, 1 insertion(+), 1 deletion(-)
[master b93561f] tiger
 Author: A U Thor aut...@example.com
 1 file changed, 1 insertion(+), 1 deletion(-)
ok 8 - delete

expecting success:

test_tick  git reset --hard HEAD~2 
test_line_count = 4 .git/logs/refs/heads/master

HEAD is now at b60a214 rat
ok 9 - rewind2

expecting success:

git reflog expire --verbose \
--expire=never \
--expire-unreachable=never \
--all 
test_line_count = 4 .git/logs/refs/heads/master

keep commit (initial): rabbit
keep commit: dragon
keep commit: rat
keep commit: tiger
keep reset: moving to HEAD~2
keep commit (initial): rabbit
keep commit: rat
keep commit: tiger
keep reset: moving to HEAD~2
ok 10 - --expire=never

expecting success:

git config gc.reflogexpire never 
git config gc.reflogexpireunreachable never 
git reflog expire --verbose --all 
test_line_count = 4 .git/logs/refs/heads/master

keep commit (initial): rabbit
keep commit: dragon
keep commit: rat
keep commit: tiger
keep reset: moving to HEAD~2
keep commit (initial): rabbit
keep commit: rat
keep commit: tiger
keep reset: moving to HEAD~2
ok 11 - gc.reflogexpire=never

expecting success:

git config gc.reflogexpire false 
git config gc.reflogexpireunreachable false 
git reflog expire --verbose --all 
test_line_count = 4 .git/logs/refs/heads/master 

git config --unset gc.reflogexpire 
git config --unset gc.reflogexpireunreachable


keep commit (initial): rabbit
keep commit: dragon
keep commit: rat
keep commit: tiger
keep reset: moving to HEAD~2
keep commit (initial): rabbit
keep commit: rat
keep commit: tiger
keep reset: moving to HEAD~2
ok 12 - gc.reflogexpire=false

expecting success:
test $(git reflog master | wc -l) = 4 
git branch foo 
git pack-refs --all 
git checkout foo 
test $(git reflog master | wc -l) = 4

Switched to branch 'foo'
ok 13 - checkout should not delete log for packed ref

expecting success:
test_when_finished git branch -d a || git branch -d a/b 

git branch a/b master 
echo a/b@{0} branch: Created from master expect 
git log -g --format=%gd %gs a/b actual 
test_cmp expect actual 
git branch -d a/b 

# now logs/refs/heads/a is a stale directory, but
# we should move it out of the way to create a reflog
git branch a master 
echo a@{0} branch: Created from master expect 
git log -g --format=%gd %gs a actual 
test_cmp expect actual

fatal: ambiguous argument 'a/b': both revision and filename
Use '--' to separate paths from revisions, like this:
'git command [revision...] -- [file...]'
not ok 14 - stale dirs do not cause d/f conflicts (reflogs on)
#
# test_when_finished git branch -d a || git branch -d a/b 
#
# git branch a/b master 
# echo a/b@{0} branch: Created from master expect 
# git log -g --format=%gd %gs a/b actual 
# test_cmp expect actual 
# git branch -d a/b 
#
# # now logs/refs/heads/a is a stale directory, but
# # we should move it out of the way to create a reflog
# git branch a master 
# echo a@{0} branch: Created from master expect 
# git log -g --format=%gd %gs a actual 
# test_cmp expect actual
#

On Sat, Nov 8, 2014 at 5:43 PM, Jeff King p...@peff.net wrote:
 On Sat, Nov 08, 2014 at 11:28:32AM -0800, Michael Blume wrote:

 When I build and run tests I get

 [11:17][michael.blume@tcc-michael-4:~/workspace/git/t(master)]$
 ./t1410-reflog.sh

 What does ./t1410-reflog.sh -v -i report?

 A quick search seems to indicate the test is pretty new?
 http://www.mail-archive.com/git@vger.kernel.org/msg60495.html

 Yes, it is new. In these cases there's often some silly little
 platform incompatibility in the test script, but I don't see one. So
 maybe the incompatibility is in the code itself; I'm wondering if
 OS X returns something besides EISDIR when trying to open a directory.

 Unfortunately I don't have an OS X install handy to test on.

 -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