代码之家  ›  专栏  ›  技术社区  ›  Adrian Panasiuk

合并前取消提交

  •  0
  • Adrian Panasiuk  · 技术社区  · 16 年前

    当我有历史的时候

    -第100版,合并
    --第95.3版
    --版本95.2
    --版本95.1
    -修订版99
    -版本98

    我尝试着 bzr uncommit -r 95.3.. 它写入错误消息。我怎样才能解决这个问题?

    错误是

    bzr: ERROR: exceptions.TypeError: unsupported operand type(s) for +: 'NoneType' and 'int'
    
    Traceback (most recent call last):
      File "/usr/lib/python2.5/site-packages/bzrlib/commands.py", line 846, in run_bzr_catch_errors
        return run_bzr(argv)
      File "/usr/lib/python2.5/site-packages/bzrlib/commands.py", line 797, in run_bzr
        ret = run(*run_argv)
      File "/usr/lib/python2.5/site-packages/bzrlib/commands.py", line 499, in run_argv_aliases
        return self.run(**all_cmd_args)
      File "/usr/lib/python2.5/site-packages/bzrlib/builtins.py", line 3694, in run
    local=local)
      File "/usr/lib/python2.5/site-packages/bzrlib/builtins.py", line 3717, in _run
    revno = revision[0].in_history(b).revno + 1
    TypeError: unsupported operand type(s) for +: 'NoneType' and 'int'
    
    bzr 1.5 on python 2.5.2 (linux2)
    arguments: ['/usr/bin/bzr', 'uncommit', '-r', '11955.2.32..']
    encoding: 'UTF-8', fsenc: 'UTF-8', lang: 'pl_PL.UTF-8'
    plugins:
      bzrtools             /usr/lib/python2.5/site-packages/bzrlib/plugins/bzrtools [1.5.0]
      gtk                  /usr/lib/python2.5/site-packages/bzrlib/plugins/gtk [0.94.0]
      interactive          /home/adi/.bazaar/plugins/interactive [1.2.0]
      launchpad            /usr/lib/python2.5/site-packages/bzrlib/plugins/launchpad [unknown]
      rebase               /home/adi/.bazaar/plugins/rebase [0.3.0]
    *** Bazaar has encountered an internal error.
        Please report a bug at https://bugs.launchpad.net/bzr/+filebug
        including this traceback, and a description of what you
        were doing when the error occurred.
    
    2 回复  |  直到 16 年前
        1
  •  0
  •   DrAl    16 年前

    这只是一个猜测,但我怀疑修订规范不接受95.3作为修订版。

    合并将作为修订版100提交给您的分支,因此您应该能够:

    bzr uncommit
    

    或:

    bzr uncommit -r 100
    

    如果要合并更改95.1和95.2(原始合并的一部分),可能需要执行以下操作:

    bzr uncommit -r 100
    bzr merge -r 95..97 /path/to/merge/source
    

    或者类似的。

    如果您需要参考95.3,我建议您阅读 Bazaar revision spec documentation 看看是否有帮助。您可能需要更明确的修订号,例如 revno:95.3 (可能不起作用)或 revno:97:/path/to/merge/source (可能有效)。但大部分都是猜测…

        2
  •  0
  •   bialix    16 年前

    您不能取消对像95.1.3这样的点式修订的注释,因为此修订不在您的主线历史记录中。你可以用 pull 命令将树改为所需的修订:

    bzr pull . -r95.1.3 --overwrite
    

    两者的主要区别 uncommit 是: 取消限制 在修订后保留在工作树中取消提交的更改,而 只需使用指定版本的文件覆盖工作树。

    另外,如果需要在合并前取消对状态的注释,则需要使用 bzr uncommit 如果R100是分支中的最后一个修订版,则不指定修订。