~bzr-pqm/bzr/bzr.dev

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
# This file is for listing TODOs for branches that are being worked on.
# It should ALWAYS be empty in the mainline or in integration branches.
# 
#

Related Bugs:
=============

.BASE, .THIS, .OTHER, .moved can't be added nor committed.
https://bugs.edge.launchpad.net/bzr/+bug/414589

More conflict types should be handled by --auto (and the option
added).
https://bugs.edge.launchpad.net/bzr/+bug/344013
https://bugs.edge.launchpad.net/bzr/+bug/389396

https://bugs.edge.launchpad.net/bzr/+bug/236724
https://bugs.edge.launchpad.net/bzr/+bug/228506
https://bugs.edge.launchpad.net/bzr/+bug/113809
https://bugs.edge.launchpad.net/bzr/+bug/322767
https://bugs.edge.launchpad.net/bzr/+bug/416903
https://bugs.edge.launchpad.net/bzr/+bug/355964

Implement --keep-mine, --take-theirs
https://bugs.edge.launchpad.net/bzr/+bug/257297
https://bugs.edge.launchpad.net/bzr/+bug/232512

https://bugs.edge.launchpad.net/bzr/+bug/457793

TODO:
=====

- make sure .moved files can't be committed !

- tests with '.diverted' files ?

Overall presentation:
=====================

Providing the ``--interactive`` option to ``bzr resolve`` will
display a short explanation of the conflict and propose some
actions before marking the file as resolved.


Design:
=======

The Conflict classes will receive additional methods to resolve
the conflict in alternative ways.

Resolve will receive a ``--interactive`` option and present a
list of possible actions (including do nothing) to the user
before marking the file as resolved.

The --all and file* parameters will still be honored so that the
user can solve conflicts at his own pace.

It should be possible for a GUI to query the conflict objects for
possible actions (in textual form) and trigger them.


Proposed actions by conflict type:
==================================

The following paragraphs list all the existing conflict types and summarize:
- the actions that can be proposed to the user,
- the cleanups that could remain to be done once the conflict is solved,

In practice, the actions will always contain:
- leave the user solve the conflict by its own means,
- mark the conflict as solved without any additional action.