Mercurial: открита е изоставена транзакция, стартирайте възстановяване на hg. липсващи ревлогове

Наскоро се опитах да насоча към централно хранилище и получих грешката: открита е изоставена транзакция. Изпълнението на hg recover каза, че няма липсваща транзакция. По съвет на друг отговор Използвах hg verify, за да видя, че в моето хранилище липсват два revlog-а; по-долу е резултатът от изпълнението на hg verify:

% hg --repository C:\dev\WHDLawWeb verify --verbose
repository uses revlog format 1
checking changesets
checking manifests
crosschecking files in changesets and manifests
checking files
 data/WHDLawWeb/Images/pastsponsorships.jpg.d@167: missing revlog!
 data/WHDLawWeb/WHDLawWeb/Resources/Image/ALFALogoWhite.jpg.i@319: missing revlog!          
7175 files, 988 changesets, 14987 total revisions           
2 integrity errors encountered!        
(first damaged changeset appears to be 167)       
[command returned code 1 Tue Jul 03 15:02:13 2012]

В опит да коригирам това и най-вече поради разочарованието си в този момент, реших просто да клонирам централното хранилище, тъй като щях да пропусна само няколко ревизии. Въпреки това, след като се опитам да натисна от това клонирано хранилище, получавам следния доклад за грешка:

** Mercurial version (2.2.2).  TortoiseHg version (2.4.1)   
** Command: --nofork workbench  
** CWD: C:\dev  
** Encoding: cp1252    
** Extensions loaded: bugzilla, graphlog, convert, extdiff  
** Python version: 2.6.6 (r266:84297, Aug 24 2010, 18:46:32) [MSC v.1500 32 bit (Intel)]  
** Windows version: (6, 1, 7601, 2, 'Service Pack 1')  
** Processor architecture: x86  
** Qt-4.7.4 PyQt-4.8.6  
Traceback (most recent call last):  
  File "tortoisehg\hgqt\repowidget.pyo", line 954, in repositoryChanged  
  File "tortoisehg\hgqt\repowidget.pyo", line 916, in rebuildGraph  
  File "tortoisehg\hgqt\repowidget.pyo", line 777, in setupModels  
  File "tortoisehg\hgqt\repomodel.pyo", line 151, in __init__  
  File "tortoisehg\hgqt\repomodel.pyo", line 170, in initBranchColors  
  File "mercurial\localrepo.pyo", line 523, in branchtags  
  File "mercurial\changelog.pyo", line 195, in read  
  File "mercurial\revlog.pyo", line 926, in revision  
  File "mercurial\revlog.pyo", line 849, in _chunkbase  
  File "mercurial\revlog.pyo", line 846, in _chunk  
  File "mercurial\revlog.pyo", line 115, in decompress  
error: Error -5 while decompressing data: incomplete or truncated stream  
Traceback (most recent call last):  
  File "tortoisehg\hgqt\commit.pyo", line 533, in repositoryChanged  
  File "tortoisehg\hgqt\commit.pyo", line 553, in refresh  
  File "tortoisehg\hgqt\thgrepo.pyo", line 631, in thgmqappliedpatch  
  File "tortoisehg\hgqt\thgrepo.pyo", line 623, in _thgmqpatchtags  
  File "mercurial\context.pyo", line 191, in tags  
  File "mercurial\localrepo.pyo", line 468, in nodetags  
  File "mercurial\util.pyo", line 237, in __get__  
  File "mercurial\localrepo.pyo", line 395, in _tagscache  
  File "mercurial\localrepo.pyo", line 428, in _findtags  
  File "mercurial\tags.pyo", line 30, in findglobaltags  
  File "mercurial\tags.pyo", line 242, in _readtagcache  
  File "mercurial\context.pyo", line 251, in filenode  
  File "mercurial\context.pyo", line 240, in _fileinfo  
  File "mercurial\context.pyo", line 183, in files  
  File "mercurial\util.pyo", line 237, in __get__  
  File "mercurial\context.pyo", line 134, in _changeset  
  File "mercurial\changelog.pyo", line 195, in read  
  File "mercurial\revlog.pyo", line 926, in revision  
  File "mercurial\revlog.pyo", line 849, in _chunkbase  
  File "mercurial\revlog.pyo", line 846, in _chunk  
  File "mercurial\revlog.pyo", line 115, in decompress  
error: Error -5 while decompressing data: incomplete or truncated stream

Изпълнението на hg verify в централното хранилище показва, че двата revlog-а също липсват тук. Ако някой знае как да коригира моето оригинално или клонирано хранилище, ще съм благодарен за обратна връзка.

Също така опитах решение тук и срещнах същия проблем. Сравнително нов съм в mercurial и tortiosehg, моля, простете за глупавите грешки. Както казах, помощта ще бъде оценена.


person ams    schedule 03.07.2012    source източник