un-reachable revisions from filelog

FUJIWARA Katsunori fujiwara at ascade.co.jp
Wed Apr 28 01:18:30 CDT 2010


Hi, devels.

In one of my hg repos, there are some un-reachable revisions when I
specify exact filename to "hg log".

But such revisions are visible from "hg log" if target file is not
specified, and:

    - "hg log -v" says that they modify target file
    - "hg diff" generates expected output for target file

so, recorded history seems to be not so(but a little) damaged.

I found that file contexts for target file of un-reachable revisions
point to same filerev. So, scan based on filelog(= "hg log" with
filename speicification) can not show such revisions.


In fact:

    - I use very old(0.9.8 !) hg command mainly to commit artifacts
      for non-technical reasons in this project

# 0.9.8 is still enough for normal daily use :-)

(Q1). is this problem resolved already ?

    - such revisions are ones applied same diff on different named
      branches

# if "NO" for Q1:
(Q2). would filelog unify same diff data into one file rev ?
(Q3). is scan based on filelog not good for "hg log", if "YES" for Q2 ?


Then, I assumed that bundle file does not depend on repo internal
representation, and tried to recover by steps shown below with the
latest(1.5.1) hg command:

    1. get bundle files for each revisions in damaged repo
    2. put bundle files to new repo

but filelog for target file in new repo is as same as one in damaged.


(Q4). are there any ways to recover from my damaged repo ?
(Q5). are there any other informations required to detect problem reason ?

--------------------
[FUJIWARA Katsunori]      fujiwara at ascade.co.jp(foozy at lares.dti.ne.jp)


More information about the Mercurial-devel mailing list