On 5 August 2012 09:43, Michael Goffioul <
address@hidden> wrote:
> I also pushed a change on qterminal repo, but for some reason I don't
> understand yet, the change in .hgsubstate hasn't been part of the change
> above. And although my local .hgsubstate file is different from the repo,
> "hg status" does not report is as such. I still have to figure out that
> part.
Do you remember what you did? If you modify the state of the subrepo,
"hg status" won't show any change, not unless you pass the --subrepo
(-S) option to it. You should never have to manually modify
.hgsubstatus. I see you made an empty commit somehow. Usually what
should happen is you modify the state of the subrepo and you make a
commit in the superrepo. The .hgsubstate should be automatically
modified.
I'm using mq to manage patches before pushing them upstream. I had the change to .hgsubstate in my patch. However, I had a dirty file I wanted to revert to its repo state, so I did "hg revert" on that file. Then I finished with "hg qrefresh -e" to update the commit message. This last step apparently lost the change to .hgsubstate in my queued patch. Then whatever I did, although .hgsubstate was out of sync, it didn't get included into the patch.
After submitting the patch, I checked the online repo and noticed that the change to .hgsubstate was indeed missing. I tried to force it with:
touch .hgsubstate
hg status (this showed the file as modified)
hg diff (this showed the expected change on the file)
hg qnew sync_qterminal .hgsubstate
vim .hg/patches/sync_qterminal (there I saw the change to .hgsubstate in the patch)
hg qfinish -a
hg push -b gui (this submitted an empty patch...)
So I re-did the above, but without using mq:
touch .hgsubstate
hg commit -m 'Force update of .hgsubstate' .hgsubstate
hg push -b gui
This eventually got the change into the upstream repo.
Note that in the above, I never edited manually .hgsubstate. It got modified automatically after submitting the change to qterminal repo, as it should. But that change got somehow lost during a qrefresh.
Michael.