monotone-commits-nodiffs
[Top][All Lists]
Advanced

[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
----------------------------------------------------------------------




reply via email to

[Prev in Thread] Current Thread [Next in Thread]