git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
* 'pu' broken at t5304 tonight
@ 2017-06-10  6:07 Junio C Hamano
  2017-06-10 12:48 ` Kevin Daudt
  0 siblings, 1 reply; 5+ messages in thread
From: Junio C Hamano @ 2017-06-10  6:07 UTC (permalink / raw)
  To: git

I didn't check where it goes wrong.  Here is a list of suspects,
taken by

    $ git shortlog --no-merges pu@{8.hours}..pu

i.e. patches that weren't in pu before today's integration cycle.

Andreas Heiduk (1):
      doc: describe git svn init --ignore-refs

Brandon Williams (32):
      config: create config.h
      config: remove git_config_iter
      config: don't include config.h by default
      config: don't implicitly use gitdir
      setup: don't perform lazy initialization of repository state
      environment: remove namespace_len variable
      repository: introduce the repository object
      environment: place key repository state in the_repository
      environment: store worktree in the_repository
      setup: add comment indicating a hack
      config: read config from a repository object
      repository: add index_state to struct repo
      submodule-config: store the_submodule_cache in the_repository
      submodule: add repo_read_gitmodules
      submodule: convert is_submodule_initialized to work on a repository
      convert: convert get_cached_convert_stats_ascii to take an index
      convert: convert crlf_to_git to take an index
      convert: convert convert_to_git_filter_fd to take an index
      convert: convert convert_to_git to take an index
      convert: convert renormalize_buffer to take an index
      tree: convert read_tree to take an index parameter
      ls-files: convert overlay_tree_on_cache to take an index
      ls-files: convert write_eolinfo to take an index
      ls-files: convert show_killed_files to take an index
      ls-files: convert show_other_files to take an index
      ls-files: convert show_ru_info to take an index
      ls-files: convert ce_excluded to take an index
      ls-files: convert prune_cache to take an index
      ls-files: convert show_files to take an index
      ls-files: factor out debug info into a function
      ls-files: factor out tag calculation
      ls-files: use repository object

Jeff King (1):
      date: use localtime() for "-local" time formats

Johannes Schindelin (8):
      discover_git_directory(): avoid setting invalid git_dir
      config: report correct line number upon error
      help: use early config when autocorrecting aliases
      read_early_config(): optionally return the worktree's top-level directory
      t1308: relax the test verifying that empty alias values are disallowed
      t7006: demonstrate a problem with aliases in subdirectories
      alias_lookup(): optionally return top-level directory
      Use the early config machinery to expand aliases

Junio C Hamano (1):
      ### match next

Prathamesh Chavan (1):
      dir: create function count_slashes

SZEDER Gábor (5):
      revision.h: turn rev_info.early_output back into an unsigned int
      revision.c: stricter parsing of '--no-{min,max}-parents'
      revision.c: stricter parsing of '--early-output'
      revision.c: use skip_prefix() in handle_revision_opt()
      revision.c: use skip_prefix() in handle_revision_pseudo_opt()

Stefan Beller (1):
      t4005: modernize style and drop hard coded sha1


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: 'pu' broken at t5304 tonight
  2017-06-10  6:07 'pu' broken at t5304 tonight Junio C Hamano
@ 2017-06-10 12:48 ` Kevin Daudt
  2017-06-10 19:05   ` Kevin Daudt
  0 siblings, 1 reply; 5+ messages in thread
From: Kevin Daudt @ 2017-06-10 12:48 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git

On Sat, Jun 10, 2017 at 03:07:01PM +0900, Junio C Hamano wrote:
> I didn't check where it goes wrong.  Here is a list of suspects,
> taken by
> 
>     $ git shortlog --no-merges pu@{8.hours}..pu
> 
> i.e. patches that weren't in pu before today's integration cycle.
> 
> Andreas Heiduk (1):
>       doc: describe git svn init --ignore-refs
> 
> Brandon Williams (32):
>       config: create config.h
>       config: remove git_config_iter
>       config: don't include config.h by default
>       config: don't implicitly use gitdir
>       setup: don't perform lazy initialization of repository state
>       environment: remove namespace_len variable
>       repository: introduce the repository object
>       environment: place key repository state in the_repository
>       environment: store worktree in the_repository
>       setup: add comment indicating a hack
>       config: read config from a repository object
>       repository: add index_state to struct repo
>       submodule-config: store the_submodule_cache in the_repository
>       submodule: add repo_read_gitmodules
>       submodule: convert is_submodule_initialized to work on a repository
>       convert: convert get_cached_convert_stats_ascii to take an index
>       convert: convert crlf_to_git to take an index
>       convert: convert convert_to_git_filter_fd to take an index
>       convert: convert convert_to_git to take an index
>       convert: convert renormalize_buffer to take an index
>       tree: convert read_tree to take an index parameter
>       ls-files: convert overlay_tree_on_cache to take an index
>       ls-files: convert write_eolinfo to take an index
>       ls-files: convert show_killed_files to take an index
>       ls-files: convert show_other_files to take an index
>       ls-files: convert show_ru_info to take an index
>       ls-files: convert ce_excluded to take an index
>       ls-files: convert prune_cache to take an index
>       ls-files: convert show_files to take an index
>       ls-files: factor out debug info into a function
>       ls-files: factor out tag calculation
>       ls-files: use repository object
> 
> Jeff King (1):
>       date: use localtime() for "-local" time formats
> 
> Johannes Schindelin (8):
>       discover_git_directory(): avoid setting invalid git_dir
>       config: report correct line number upon error
>       help: use early config when autocorrecting aliases
>       read_early_config(): optionally return the worktree's top-level directory
>       t1308: relax the test verifying that empty alias values are disallowed
>       t7006: demonstrate a problem with aliases in subdirectories
>       alias_lookup(): optionally return top-level directory
>       Use the early config machinery to expand aliases
> 
> Junio C Hamano (1):
>       ### match next
> 
> Prathamesh Chavan (1):
>       dir: create function count_slashes
> 
> SZEDER Gábor (5):
>       revision.h: turn rev_info.early_output back into an unsigned int
>       revision.c: stricter parsing of '--no-{min,max}-parents'
>       revision.c: stricter parsing of '--early-output'
>       revision.c: use skip_prefix() in handle_revision_opt()
>       revision.c: use skip_prefix() in handle_revision_pseudo_opt()
> 
> Stefan Beller (1):
>       t4005: modernize style and drop hard coded sha1
> 

For me, this bisects to the latest merge:

2047eebd3 (Merge branch 'bw/repo-object' into pu, 2017-06-10), but
neither of the parent of the merge break this test, so it looks like
it's because of an interaction between the repo-object topic and another
topic.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: 'pu' broken at t5304 tonight
  2017-06-10 12:48 ` Kevin Daudt
@ 2017-06-10 19:05   ` Kevin Daudt
  2017-06-11  4:13     ` Christian Couder
  0 siblings, 1 reply; 5+ messages in thread
From: Kevin Daudt @ 2017-06-10 19:05 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git

On Sat, Jun 10, 2017 at 02:48:36PM +0200, Kevin Daudt wrote:
> On Sat, Jun 10, 2017 at 03:07:01PM +0900, Junio C Hamano wrote:
> > I didn't check where it goes wrong.  Here is a list of suspects,
> > taken by
> > 
> >     $ git shortlog --no-merges pu@{8.hours}..pu
> > 
> > i.e. patches that weren't in pu before today's integration cycle.
> > 
> > Andreas Heiduk (1):
> >       doc: describe git svn init --ignore-refs
> > 
> > Brandon Williams (32):
> >       config: create config.h
> >       config: remove git_config_iter
> >       config: don't include config.h by default
> >       config: don't implicitly use gitdir
> >       setup: don't perform lazy initialization of repository state
> >       environment: remove namespace_len variable
> >       repository: introduce the repository object
> >       environment: place key repository state in the_repository
> >       environment: store worktree in the_repository
> >       setup: add comment indicating a hack
> >       config: read config from a repository object
> >       repository: add index_state to struct repo
> >       submodule-config: store the_submodule_cache in the_repository
> >       submodule: add repo_read_gitmodules
> >       submodule: convert is_submodule_initialized to work on a repository
> >       convert: convert get_cached_convert_stats_ascii to take an index
> >       convert: convert crlf_to_git to take an index
> >       convert: convert convert_to_git_filter_fd to take an index
> >       convert: convert convert_to_git to take an index
> >       convert: convert renormalize_buffer to take an index
> >       tree: convert read_tree to take an index parameter
> >       ls-files: convert overlay_tree_on_cache to take an index
> >       ls-files: convert write_eolinfo to take an index
> >       ls-files: convert show_killed_files to take an index
> >       ls-files: convert show_other_files to take an index
> >       ls-files: convert show_ru_info to take an index
> >       ls-files: convert ce_excluded to take an index
> >       ls-files: convert prune_cache to take an index
> >       ls-files: convert show_files to take an index
> >       ls-files: factor out debug info into a function
> >       ls-files: factor out tag calculation
> >       ls-files: use repository object
> > 
> > Jeff King (1):
> >       date: use localtime() for "-local" time formats
> > 
> > Johannes Schindelin (8):
> >       discover_git_directory(): avoid setting invalid git_dir
> >       config: report correct line number upon error
> >       help: use early config when autocorrecting aliases
> >       read_early_config(): optionally return the worktree's top-level directory
> >       t1308: relax the test verifying that empty alias values are disallowed
> >       t7006: demonstrate a problem with aliases in subdirectories
> >       alias_lookup(): optionally return top-level directory
> >       Use the early config machinery to expand aliases
> > 
> > Junio C Hamano (1):
> >       ### match next
> > 
> > Prathamesh Chavan (1):
> >       dir: create function count_slashes
> > 
> > SZEDER Gábor (5):
> >       revision.h: turn rev_info.early_output back into an unsigned int
> >       revision.c: stricter parsing of '--no-{min,max}-parents'
> >       revision.c: stricter parsing of '--early-output'
> >       revision.c: use skip_prefix() in handle_revision_opt()
> >       revision.c: use skip_prefix() in handle_revision_pseudo_opt()
> > 
> > Stefan Beller (1):
> >       t4005: modernize style and drop hard coded sha1
> > 
> 
> For me, this bisects to the latest merge:
> 
> 2047eebd3 (Merge branch 'bw/repo-object' into pu, 2017-06-10), but
> neither of the parent of the merge break this test, so it looks like
> it's because of an interaction between the repo-object topic and another
> topic.

Merging the repo-object with different other topic branches reveals this
topic to cause the bad interaction:

b56c91004 (Merge branch 'nd/prune-in-worktree' into pu, 2017-06-10)

Still investigating why it happens.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: 'pu' broken at t5304 tonight
  2017-06-10 19:05   ` Kevin Daudt
@ 2017-06-11  4:13     ` Christian Couder
  2017-06-12 18:03       ` Brandon Williams
  0 siblings, 1 reply; 5+ messages in thread
From: Christian Couder @ 2017-06-11  4:13 UTC (permalink / raw)
  To: Kevin Daudt; +Cc: Junio C Hamano, git

On Sat, Jun 10, 2017 at 9:05 PM, Kevin Daudt <me@ikke.info> wrote:
> On Sat, Jun 10, 2017 at 02:48:36PM +0200, Kevin Daudt wrote:

>> For me, this bisects to the latest merge:
>>
>> 2047eebd3 (Merge branch 'bw/repo-object' into pu, 2017-06-10), but
>> neither of the parent of the merge break this test, so it looks like
>> it's because of an interaction between the repo-object topic and another
>> topic.
>
> Merging the repo-object with different other topic branches reveals this
> topic to cause the bad interaction:
>
> b56c91004 (Merge branch 'nd/prune-in-worktree' into pu, 2017-06-10)
>
> Still investigating why it happens.

Yeah, 9570b25a97 (revision.c: --indexed-objects add objects from all
worktrees, 2017-04-19) adds the following test to t5304-prune.sh but
this fails if nd/prune-in-worktree is rebased on top of
bw/repo-object:

test_expect_success 'prune: handle index in multiple worktrees' '
       git worktree add second-worktree &&
       echo "new blob for second-worktree" >second-worktree/blob &&
       git -C second-worktree add blob &&
       git prune --expire=now &&
       git -C second-worktree show :blob >actual &&
       test_cmp second-worktree/blob actual
'

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: 'pu' broken at t5304 tonight
  2017-06-11  4:13     ` Christian Couder
@ 2017-06-12 18:03       ` Brandon Williams
  0 siblings, 0 replies; 5+ messages in thread
From: Brandon Williams @ 2017-06-12 18:03 UTC (permalink / raw)
  To: Christian Couder; +Cc: Kevin Daudt, Junio C Hamano, git

On 06/11, Christian Couder wrote:
> On Sat, Jun 10, 2017 at 9:05 PM, Kevin Daudt <me@ikke.info> wrote:
> > On Sat, Jun 10, 2017 at 02:48:36PM +0200, Kevin Daudt wrote:
> 
> >> For me, this bisects to the latest merge:
> >>
> >> 2047eebd3 (Merge branch 'bw/repo-object' into pu, 2017-06-10), but
> >> neither of the parent of the merge break this test, so it looks like
> >> it's because of an interaction between the repo-object topic and another
> >> topic.
> >
> > Merging the repo-object with different other topic branches reveals this
> > topic to cause the bad interaction:
> >
> > b56c91004 (Merge branch 'nd/prune-in-worktree' into pu, 2017-06-10)
> >
> > Still investigating why it happens.
> 
> Yeah, 9570b25a97 (revision.c: --indexed-objects add objects from all
> worktrees, 2017-04-19) adds the following test to t5304-prune.sh but
> this fails if nd/prune-in-worktree is rebased on top of
> bw/repo-object:
> 
> test_expect_success 'prune: handle index in multiple worktrees' '
>        git worktree add second-worktree &&
>        echo "new blob for second-worktree" >second-worktree/blob &&
>        git -C second-worktree add blob &&
>        git prune --expire=now &&
>        git -C second-worktree show :blob >actual &&
>        test_cmp second-worktree/blob actual
> '

I think I discovered what is going on here (and its mostly my fault :D).

(e7a6a3b15 revision.c: --indexed-objects add objects from all worktrees)
queries each worktree's index to add object which are pending in the
per-worktree index's.  To do this is uses 'worktree_git_path' in order
to construct a path to the worktree's index file.  My series introduced
a change to how 'adjust_git_path' functioned, instead of checking if the
index file came from the environment before replacing with the result of
'get_index_file()', i change it to unconditionally do this replacing
which breaks the ability to get a path to a worktree's index.

So this breakage is definitely my fault, but you would still run into
this exact same issue if you had set 'GIT_INDEX_FILE' as no worktree's
would be able to find their index files as they would be overridden by
the envvar.

-- 
Brandon Williams

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2017-06-12 18:04 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-06-10  6:07 'pu' broken at t5304 tonight Junio C Hamano
2017-06-10 12:48 ` Kevin Daudt
2017-06-10 19:05   ` Kevin Daudt
2017-06-11  4:13     ` Christian Couder
2017-06-12 18:03       ` Brandon Williams

Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).