[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