git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Problem with submodule merge
@ 2011-09-16 12:48 Nicolas Morey-Chaisemartin
  2011-09-16 14:57 ` Heiko Voigt
  0 siblings, 1 reply; 3+ messages in thread
From: Nicolas Morey-Chaisemartin @ 2011-09-16 12:48 UTC (permalink / raw)
  To: git

Hi,

We have meet an issue few times at work with submodule merge.
I'm running git 1.7.7-rc1 build from master on FC15 x86_64 but I've seen the issue on other ditro with older (stable) versions

I still haven't figured out exactly when it happends but here are the symptoms:

1) I commited some updates for a submodule in our integration repo.
2) I pulled a remote branch of the integration repo which had an update on the same submodule (but different SHAs)
3) When the merge driver try to find a following commit for the submodule, I get some (sometimes many) error messages about refs that point to invalid objects:

[nmorey@sat:SigmaCToolchain (user/nmorey/dev/0.3.0 *%>)]$ git merge origin/prerelease/0.3-0 
error: refs/heads/user/nmorey/master does not point to a valid object!
error: refs/remotes/origin/dev/cpp does not point to a valid object!
error: refs/remotes/origin/dev/scuk does not point to a valid object!
error: refs/remotes/origin/dev/sys_agents does not point to a valid object!
error: refs/remotes/origin/user/bbodin/cea does not point to a valid object!
error: refs/remotes/origin/user/borgogoz/master does not point to a valid object!
warning: Failed to merge submodule db (merge following commits not found)
Auto-merging db
CONFLICT (submodule): Merge conflict in db
Automatic merge failed; fix conflicts and then commit the result.


I checked and the object really exists in the submodule but is in a pack.

>From checking the strace, git looks for a the object in db/.git/objects/... whch does not exists
And from what I could figure it, the issue seems to be coming from  find_pack_entry which does not return 1 so git goes looking for loose object
and cannot find any (as expected).
This is not a big issue as it just outputs errors about refs and does not block the user but it gets quite scary when there are a few hundreds of them !


I kept a tarball of the repo so I can provide more info/logs/trace if needed.

Nicolas

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

* Re: Problem with submodule merge
  2011-09-16 12:48 Problem with submodule merge Nicolas Morey-Chaisemartin
@ 2011-09-16 14:57 ` Heiko Voigt
  2011-09-19  7:55   ` Nicolas Morey-Chaisemartin
  0 siblings, 1 reply; 3+ messages in thread
From: Heiko Voigt @ 2011-09-16 14:57 UTC (permalink / raw)
  To: Nicolas Morey-Chaisemartin; +Cc: git

Hi,

this looks like you have hit a codepath where the submodules object
database is not added to the object database. I am not sure why.

Could you try my patch that moves the merge search into a forked process:

3dcb369b allow multiple calls to submodule merge search for the same path

That should solve the issue as a side effect. Its currently in Junio's
pu branch.

Cheers Heiko

On Fri, Sep 16, 2011 at 02:48:02PM +0200, Nicolas Morey-Chaisemartin wrote:
> Hi,
> 
> We have meet an issue few times at work with submodule merge.
> I'm running git 1.7.7-rc1 build from master on FC15 x86_64 but I've seen the issue on other ditro with older (stable) versions
> 
> I still haven't figured out exactly when it happends but here are the symptoms:
> 
> 1) I commited some updates for a submodule in our integration repo.
> 2) I pulled a remote branch of the integration repo which had an update on the same submodule (but different SHAs)
> 3) When the merge driver try to find a following commit for the submodule, I get some (sometimes many) error messages about refs that point to invalid objects:
> 
> [nmorey@sat:SigmaCToolchain (user/nmorey/dev/0.3.0 *%>)]$ git merge origin/prerelease/0.3-0 
> error: refs/heads/user/nmorey/master does not point to a valid object!
> error: refs/remotes/origin/dev/cpp does not point to a valid object!
> error: refs/remotes/origin/dev/scuk does not point to a valid object!
> error: refs/remotes/origin/dev/sys_agents does not point to a valid object!
> error: refs/remotes/origin/user/bbodin/cea does not point to a valid object!
> error: refs/remotes/origin/user/borgogoz/master does not point to a valid object!
> warning: Failed to merge submodule db (merge following commits not found)
> Auto-merging db
> CONFLICT (submodule): Merge conflict in db
> Automatic merge failed; fix conflicts and then commit the result.
> 
> 
> I checked and the object really exists in the submodule but is in a pack.
> 
> >From checking the strace, git looks for a the object in db/.git/objects/... whch does not exists
> And from what I could figure it, the issue seems to be coming from  find_pack_entry which does not return 1 so git goes looking for loose object
> and cannot find any (as expected).
> This is not a big issue as it just outputs errors about refs and does not block the user but it gets quite scary when there are a few hundreds of them !
> 
> 
> I kept a tarball of the repo so I can provide more info/logs/trace if needed.
> 
> Nicolas
> --
> To unsubscribe from this list: send the line "unsubscribe git" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

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

* Re: Problem with submodule merge
  2011-09-16 14:57 ` Heiko Voigt
@ 2011-09-19  7:55   ` Nicolas Morey-Chaisemartin
  0 siblings, 0 replies; 3+ messages in thread
From: Nicolas Morey-Chaisemartin @ 2011-09-19  7:55 UTC (permalink / raw)
  To: Heiko Voigt; +Cc: git

Hi,

You're right, this fixes the issue:
$ git merge origin/prerelease/0.3-0
warning: Failed to merge submodule db (merge following commits not found)
Auto-merging db
CONFLICT (submodule): Merge conflict in db
Automatic merge failed; fix conflicts and then commit the result.

Thanks for the help

Nicolas

On 09/16/2011 04:57 PM, Heiko Voigt wrote:
> Hi,
>
> this looks like you have hit a codepath where the submodules object
> database is not added to the object database. I am not sure why.
>
> Could you try my patch that moves the merge search into a forked process:
>
> 3dcb369b allow multiple calls to submodule merge search for the same path
>
> That should solve the issue as a side effect. Its currently in Junio's
> pu branch.
>
> Cheers Heiko
>
> On Fri, Sep 16, 2011 at 02:48:02PM +0200, Nicolas Morey-Chaisemartin wrote:
>> Hi,
>>
>> We have meet an issue few times at work with submodule merge.
>> I'm running git 1.7.7-rc1 build from master on FC15 x86_64 but I've seen the issue on other ditro with older (stable) versions
>>
>> I still haven't figured out exactly when it happends but here are the symptoms:
>>
>> 1) I commited some updates for a submodule in our integration repo.
>> 2) I pulled a remote branch of the integration repo which had an update on the same submodule (but different SHAs)
>> 3) When the merge driver try to find a following commit for the submodule, I get some (sometimes many) error messages about refs that point to invalid objects:
>>
>> [nmorey@sat:SigmaCToolchain (user/nmorey/dev/0.3.0 *%>)]$ git merge origin/prerelease/0.3-0 
>> error: refs/heads/user/nmorey/master does not point to a valid object!
>> error: refs/remotes/origin/dev/cpp does not point to a valid object!
>> error: refs/remotes/origin/dev/scuk does not point to a valid object!
>> error: refs/remotes/origin/dev/sys_agents does not point to a valid object!
>> error: refs/remotes/origin/user/bbodin/cea does not point to a valid object!
>> error: refs/remotes/origin/user/borgogoz/master does not point to a valid object!
>> warning: Failed to merge submodule db (merge following commits not found)
>> Auto-merging db
>> CONFLICT (submodule): Merge conflict in db
>> Automatic merge failed; fix conflicts and then commit the result.
>>
>>
>> I checked and the object really exists in the submodule but is in a pack.
>>
>> >From checking the strace, git looks for a the object in db/.git/objects/... whch does not exists
>> And from what I could figure it, the issue seems to be coming from  find_pack_entry which does not return 1 so git goes looking for loose object
>> and cannot find any (as expected).
>> This is not a big issue as it just outputs errors about refs and does not block the user but it gets quite scary when there are a few hundreds of them !
>>
>>
>> I kept a tarball of the repo so I can provide more info/logs/trace if needed.
>>
>> Nicolas
>> --
>> To unsubscribe from this list: send the line "unsubscribe git" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html

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

end of thread, other threads:[~2011-09-19  7:55 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-09-16 12:48 Problem with submodule merge Nicolas Morey-Chaisemartin
2011-09-16 14:57 ` Heiko Voigt
2011-09-19  7:55   ` Nicolas Morey-Chaisemartin

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 NNTP newsgroup(s).