[Crossfire-wiki] [Crossfire DokuWiki] page changed: dev_todo:mapdiff
no-reply_wiki at metalforge.org
no-reply_wiki at metalforge.org
Fri Sep 29 00:33:29 CDT 2006
A page in your DokuWiki was added or changed. Here are the details:
Date : 2006/09/29 00:33
Browser : Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1b1) Gecko/20
060713 BonEcho/2.0b1
IP-Address : 66.222.158.169
Hostname : d66-222-158-169.abhsia.telus.net
Old Revision: http://wiki.metalforge.net/doku.php/dev_todo:mapdiff?rev=1
159467720
New Revision: http://wiki.metalforge.net/doku.php/dev_todo:mapdiff
Edit Summary: Adjust proposal to include fix
User : rednaxela
@@ -1,12 +1,17 @@
====== Diff/Patch for Crossfire maps ======
===== Reason =====
- Currently diff does a reasonable job at creating patches for maps, howev
er these patches are not reliable imperfect patching. This is because for
imperfect patching relies on the context in the patch containing sufficent
information to find where the change should happen. This situation is eve
n worse for objects in inventories, where there will be no x or y coords i
n the context.
+ Currently diff does a reasonable job at creating patches for maps, howev
er these patches are not reliable imperfect patching. This is because for
imperfect patching relies on the context in the patch containing sufficien
t information to find where the change should happen. This situation is ev
en worse for objects in inventories, where there will be no x or y coords
in the context.
+ This could make patching player unique files much more practical.
===== Proposed system =====
- * Make a diff varient which for the context on each side of the change
s, instead of being a fixed amount, will be from the start of the object t
ill the end of the object. This will make the standard GNU patch do much m
ore accurate imperfect patching from these diff files.
- * Insert extra metadata in the diff file, and create a custom patch va
rient, which would allow the custom patch varient to do an even better job
.
+ * Make a diff variant which for the context on each side of the change
s, instead of being a fixed amount, will be from the start of the object t
ill the end of the object. This will make the standard GNU patch do much m
ore accurate imperfect patching from these diff files.
+ * The context will include the objects around it when:
+ * When the object is being inserted or removed (or moved, which is
both operations)
+ * The object is in the inventory of another object
+ * Insert extra metadata in the diff file, and create a custom patch va
riant, which would allow the custom patch variant to do an even better job
.
* Include data such as, when the object is in another object, what i
t's container object is.
+ * Report all ambiguities both when making the diff and applying the pa
tch.
+ * As a warning when doing the diff
+ * Allow the user to resolve when applying a patch, perhaps make it a
friendly semi-automated map-format-aware menu to resolve the ambiguity, a
s opposed to the not-as-smart text based manual conflict resolving methods
.
===== Issues with the proposed system =====
- * Handling patches that change the layering of objects.
-
--
This mail was generated by DokuWiki at
http://wiki.metalforge.net/
More information about the crossfire-wiki
mailing list