[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Monotone-commits-nodiffs] Revision ee57fe487ffcfd442877e9f43cf6c952fa58
From: |
monotone |
Subject: |
[Monotone-commits-nodiffs] Revision ee57fe487ffcfd442877e9f43cf6c952fa585ecf |
Date: |
Fri, 29 Aug 2008 17:04:32 +0200 |
-----------------------------------------------------------------
Revision: ee57fe487ffcfd442877e9f43cf6c952fa585ecf
Ancestor: 2a8a527267594845ef05344f96f2873aa40c970f
Author: address@hidden
Date: 2008-08-26T07:17:56
Branch: net.venge.monotone.resolve_conflicts
Added files:
tests/resolve_content_conflict/__driver__.lua
tests/resolve_content_conflict/conflicts-1
tests/resolve_content_conflict/merge-1
tests/resolve_content_conflict/resolve-conflicts-1
tests/resolve_content_conflict/update-1
Added directories:
tests/resolve_content_conflict
Modified files:
basic_io.cc basic_io.hh cmd_merging.cc diff_patch.cc
diff_patch.hh merge.cc merge.hh monotone.texi
options_list.hh roster.cc roster.hh roster_merge.cc
roster_merge.hh testlib.lua
ChangeLog:
Add duplicate name and file content conflict resolution. First test passes;
needs more work.
* basic_io.cc (stanza::push_symbol): new
(stanza::push_str_multi (sym, sym, vector)): new
* basic_io.hh (syms): Clean up trailing whitespace. Move roster symbols
to roster.cc. Add stanza::push_symbol, stanza::push_str_multi.
* cmd_merging.cc (CMD(*)): Add resolve conflicts options to all commands.
Not all implemented yet; FIXME_RESOLVE_CONFLICTS added. Match changes
in other files.
(find_heads_to_merge): Handle heads.size() == 2 here.
(CMD(merge)): Only do first merge if conflict resolutions specified.
(show_conflicts_core): Add lua argument for checking if internal merger
will succeed.
* diff_patch.cc (content_merger::attempt_auto_merge): Factor out of
try_auto_merge, so report_file_content_conflicts can see if internal
merger will succeed.
* diff_patch.hh (struct content_merger): Add attempt_auto_merge.
* merge.cc (get_file_details): Move to roster.cc roster_t.
(resolve_merge_conflicts): Resolve duplicate_name and file_content.
(interactive_merge_and_store): Handle resolve_conflicts_opts
* monotone.texi (Merge Conflicts): Describe --resolve-conflicts,
--resolve-conflicts-file options. Needs more.
(Automation show_conflicts): Add example of resolved_internal.
* options_list.hh: Add resolve_conflicts_opts
* roster.cc (syms): move roster syms here from basic_io.hh
(roster_t::get_file_details): Moved here from merge.cc
* roster_merge.cc (image(resolution_t)): new
(dump (duplicate_name_conflict)): dump resolution.
(dump (file_content_conflict)): dump resolution.
(syms): Add conflict resolution symbols.
(put_content_conflict): Add roster args to simplify getting names.
Output resolution.
(auto_merge_succeeds): new; test if internal line merger would work on
a file content conflict.
(roster_merge_result::report_file_content_conflicts): Use
auto_merge_succeeds, add resolution to conflict.
(do_auto_merge): new; apply auto merger to resolve conflict.
(parse_duplicate_name_conflicts): new
(parse_file_content_conflicts): new
(parse_resolve_conflicts_str): new
(parse_resolve_conflicts_opts): new
(attach_node): new
(roster_merge_result::resolve_duplicate_name_conflicts): new
(roster_merge_result::resolve_file_content_conflicts): new
* roster_merge.hh (resolve_conflicts): new.
(struct duplicate_name_conflict): add resolution.
(struct file_content_conflict): add resolution.
(roster_merge_result::resolve_duplicate_name_conflicts): new
(roster_merge_result::resolve_file_content_conflicts): new
(parse_resolve_conflicts_opts): new
* testlib.lua (samefilestd): new.
* tests/resolve_content_conflict: New test.
monotone --db={your.database} diff
--revision=2a8a527267594845ef05344f96f2873aa40c970f
--revision=ee57fe487ffcfd442877e9f43cf6c952fa585ecf
----------------------------------------------------------------------
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Monotone-commits-nodiffs] Revision ee57fe487ffcfd442877e9f43cf6c952fa585ecf,
monotone <=