Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 破碎汞回购_Linux_Version Control_Mercurial - Fatal编程技术网

Linux 破碎汞回购

Linux 破碎汞回购,linux,version-control,mercurial,Linux,Version Control,Mercurial,我在我的根目录上做了一个revursive sed,当我试图提交,或者用hg做任何事情时,除了hg--help,我得到了一个堆栈跟踪。当我执行sed时,我错误地认为.hg目录是写保护的 回购协议在我的机器上是本地的 我有没有办法恢复我的变更日志或提交评论?我在.hg目录中找到了一个名为00changelog.I的文件,但它是一个无法执行的二进制文件 sed命令: find . -type f -exec sed -i.bak "s/sim-config.h/config.h/g" {} \; f

我在我的根目录上做了一个revursive sed,当我试图提交,或者用hg做任何事情时,除了hg--help,我得到了一个堆栈跟踪。当我执行sed时,我错误地认为.hg目录是写保护的

回购协议在我的机器上是本地的

我有没有办法恢复我的变更日志或提交评论?我在
.hg
目录中找到了一个名为
00changelog.I
的文件,但它是一个无法执行的二进制文件

sed命令:

find . -type f -exec sed -i.bak "s/sim-config.h/config.h/g" {} \;
find . -type f -exec sed -i.bak "s/av-config.h/config.h/g" {} \;
堆栈跟踪:

Traceback (most recent call last):
  File "/usr/bin/hg", line 27, in <module>
    mercurial.dispatch.run()
  File "/usr/lib/python2.6/site-packages/mercurial/dispatch.py", line 16, in run
    sys.exit(dispatch(sys.argv[1:]))
  File "/usr/lib/python2.6/site-packages/mercurial/dispatch.py", line 30, in dispatch
    return _runcatch(u, args)
  File "/usr/lib/python2.6/site-packages/mercurial/dispatch.py", line 50, in _runcatch
    return _dispatch(ui, args)
  File "/usr/lib/python2.6/site-packages/mercurial/dispatch.py", line 470, in _dispatch
    return runcommand(lui, repo, cmd, fullargs, ui, options, d)
  File "/usr/lib/python2.6/site-packages/mercurial/dispatch.py", line 340, in runcommand
    ret = _runcommand(ui, options, cmd, d)
  File "/usr/lib/python2.6/site-packages/mercurial/dispatch.py", line 521, in _runcommand
    return checkargs()
  File "/usr/lib/python2.6/site-packages/mercurial/dispatch.py", line 475, in checkargs
return cmdfunc()
  File "/usr/lib/python2.6/site-packages/mercurial/dispatch.py", line 469, in <lambda>
    d = lambda: util.checksignature(func)(ui, *args, **cmdoptions)
  File "/usr/lib/python2.6/site-packages/mercurial/util.py", line 401, in check
    return func(*args, **kwargs)
  File "/usr/lib/python2.6/site-packages/mercurial/commands.py", line 712, in commit
    node = cmdutil.commit(ui, repo, commitfunc, pats, opts)
  File "/usr/lib/python2.6/site-packages/mercurial/cmdutil.py", line 1151, in commit
    return commitfunc(ui, repo, message, match(repo, pats, opts), opts)
  File "/usr/lib/python2.6/site-packages/mercurial/commands.py", line 710, in commitfunc
    editor=e, extra=extra)
  File "/usr/lib/python2.6/site-packages/mercurial/localrepo.py", line 787, in commit
    changes = self.status(match=match, clean=force)
  File "/usr/lib/python2.6/site-packages/mercurial/localrepo.py", line 1015, in status
    listclean, listunknown)
  File "/usr/lib/python2.6/site-packages/mercurial/dirstate.py", line 614, in status
    dmap = self._map
  File "/usr/lib/python2.6/site-packages/mercurial/util.py", line 156, in __get__
    result = self.func(obj)
  File "/usr/lib/python2.6/site-packages/mercurial/dirstate.py", line 58, in _map
    self._read()
  File "/usr/lib/python2.6/site-packages/mercurial/dirstate.py", line 228, in _read
    p = parsers.parse_dirstate(self._map, self._copymap, st)
回溯(最近一次呼叫最后一次):
文件“/usr/bin/hg”,第27行,在
mercurial.dispatch.run()
文件“/usr/lib/python2.6/site packages/mercurial/dispatch.py”,第16行,正在运行
系统退出(调度(sys.argv[1:]))
文件“/usr/lib/python2.6/site packages/mercurial/dispatch.py”,第30行,在dispatch中
return\u runcatch(u,args)
文件“/usr/lib/python2.6/site packages/mercurial/dispatch.py”,第50行,在runcatch中
返回\u分派(用户界面,参数)
文件“/usr/lib/python2.6/site packages/mercurial/dispatch.py”,第470行,在
返回runcommand(lui、repo、cmd、fullargs、ui、options、d)
文件“/usr/lib/python2.6/site packages/mercurial/dispatch.py”,第340行,在runcommand中
ret=_runcommand(用户界面,选项,命令,d)
文件“/usr/lib/python2.6/site packages/mercurial/dispatch.py”,第521行,在运行命令中
返回checkargs()
checkargs中的文件“/usr/lib/python2.6/site packages/mercurial/dispatch.py”,第475行
返回cmdfunc()
文件“/usr/lib/python2.6/site packages/mercurial/dispatch.py”,第469行,在
d=lambda:util.checksignature(func)(用户界面,*args,**cmdoptions)
文件“/usr/lib/python2.6/site packages/mercurial/util.py”,第401行,选中
返回函数(*args,**kwargs)
提交中第712行的文件“/usr/lib/python2.6/site packages/mercurial/commands.py”
node=cmdutil.commit(ui、repo、commitfunc、pats、opts)
提交中的文件“/usr/lib/python2.6/site packages/mercurial/cmdutil.py”,第1151行
返回commitfunc(用户界面、回购、消息、匹配(回购、PAT、opts)、opts)
commitfunc中的文件“/usr/lib/python2.6/site packages/mercurial/commands.py”,第710行
编辑器=e,额外=额外)
提交文件“/usr/lib/python2.6/site packages/mercurial/localrepo.py”,第787行
更改=自身状态(匹配=匹配,清除=强制)
文件“/usr/lib/python2.6/site packages/mercurial/localrepo.py”,第1015行,处于状态
listclean,listunknown)
文件“/usr/lib/python2.6/site packages/mercurial/dirstate.py”,第614行,处于状态
dmap=自映射
文件“/usr/lib/python2.6/site packages/mercurial/util.py”,第156行,在__
结果=自功能(obj)
文件“/usr/lib/python2.6/site packages/mercurial/dirstate.py”,第58行,在地图中
self._read()
文件“/usr/lib/python2.6/site packages/mercurial/dirstate.py”,第228行,已读
p=parsers.parse_dirstate(self.\u map,self.\u copymap,st)

如果没有上游源可以替换
.hg
克隆,这可能取决于文件的混乱程度。但是,正如您所注意到的,Mercurial在内部以二进制格式存储文件,这将使手工修复变得更加困难

大概您没有使用
sed-i.bak
运行备份(这将使恢复更容易)

您可以执行以下操作:

find .hg -mmin -60 -print
查看在过去(比如)60分钟内修改了哪些文件。可能没有太多修改,您可以找到某种方法来逆转
sed
命令对该文件的影响(但如果您运行类似
/foo/d
的命令,则这是不可能的)


将来,注册一个免费帐户可能值得,它将为您提供免费的私有存储库托管和良好的备份位置。

您有从中克隆的上游回购吗?您的本地回购中有多少承诺不在上游?没有上游回购,所以所有承诺都在上游回购中。我在回购本身中进行编码。您运行了什么
sed
命令?你得到的堆栈跟踪是什么?我确实用-I.bak运行了sed。我完全忘记了那件事。问题是,我运行了一些不同的SED,并且有。bak。bak。bak等等。我该如何恢复它呢?不管怎样,我没有.bak如果你真的有
.bak
文件,你需要找到它们并替换(例如
mv 00changelog.I.bak 00changelog.I
)。