uncommit до слияния - PullRequest
       20

uncommit до слияния

0 голосов
/ 17 марта 2010

Когда у меня есть история

-rev 100, объединить
- вер. 95,3
- вер. 95.2
- ред. 95,1
-rev 99
-rev 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 ]

0 голосов
/ 17 марта 2010

Вы не можете отменить пунктирную ревизию, такую ​​как 95.1.3, потому что этой ревизии нет в вашей основной истории. Вместо этого вы можете использовать команду pull, чтобы получить дерево с нужной ревизией:

bzr pull . -r95.1.3 --overwrite

Основное различие между uncommit и pull заключается в том, что uncommit оставляет изменения после ревизии, к которой вы отменяете действия в рабочем дереве, тогда как pull просто перезаписывает ваше рабочее дерево файлами указанной ревизии.

Также, если вам нужно отменить передачу в состояние непосредственно перед слиянием, вы должны использовать bzr uncommit без указания ревизий, если r100 - последняя ревизия в ветви.

0 голосов
/ 17 марта 2010

На самом деле это только предположение, но я подозреваю, что спецификация ревизии не принимает 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 , чтобы узнать,что помогает.Вам может понадобиться более явный номер редакции, такой как revno:95.3 (который, вероятно, не будет работать) или revno:97:/path/to/merge/source (который может работать).Хотя большая часть этого была предположением ...

...