org-merge-driver.git
23 months agoAdd test drivers master gsoc_pencil_down
Andrew Young [Sat, 18 Aug 2012 08:06:28 +0000]
Add test drivers

These files were previously links.

23 months agoAdd GPL License header to source files
Andrew Young [Thu, 16 Aug 2012 09:02:53 +0000]
Add GPL License header to source files

23 months agoAdd and fix test cases
Andrew Young [Thu, 16 Aug 2012 08:39:36 +0000]
Add and fix test cases

23 months agoStore relative heading level when parsing
Andrew Young [Thu, 16 Aug 2012 08:36:49 +0000]
Store relative heading level when parsing

23 months agoFix insertion and deletion of children elements
Andrew Young [Thu, 16 Aug 2012 08:23:35 +0000]
Fix insertion and deletion of children elements

* recursively note_insert the children of an inserted element.
* recursively note_delete
* make mergers clone contexts before modifying them.
* make mergers indicate strategy in merge context.

23 months agoAdd org_heading debug module
Andrew Young [Thu, 16 Aug 2012 08:20:58 +0000]
Add org_heading debug module

23 months agoUpdate README
Andrew Young [Tue, 14 Aug 2012 06:53:40 +0000]
Update README

23 months agoAdd gnulib and Flex generated files
Andrew Young [Mon, 13 Aug 2012 17:48:35 +0000]
Add gnulib and Flex generated files

This will lesson the dependencies for those who wish to build the
program.

23 months agoClose input files before writing output
Andrew Young [Mon, 13 Aug 2012 16:48:54 +0000]
Close input files before writing output

23 months agoProperly return -1 on unresolved conflict
Andrew Young [Mon, 13 Aug 2012 15:30:22 +0000]
Properly return -1 on unresolved conflict

23 months agoAdd a TAP driver and parallel test harness
Andrew Young [Mon, 13 Aug 2012 14:53:33 +0000]
Add a TAP driver and parallel test harness

23 months agoAdd more test cases.
Andrew Young [Mon, 13 Aug 2012 14:52:21 +0000]
Add more test cases.

23 months agoDisable debug printing
Andrew Young [Mon, 13 Aug 2012 14:51:16 +0000]
Disable debug printing

23 months agoImplement beginning of cycle testing
Andrew Young [Mon, 13 Aug 2012 14:49:55 +0000]
Implement beginning of cycle testing

- In progress solution to heading movements causing cycles in the
  document graph.

23 months agoImplement parsing of properties properties drawer
Andrew Young [Mon, 13 Aug 2012 14:48:57 +0000]
Implement parsing of properties properties drawer

23 months agoImplement new doc_elt interfaces
Andrew Young [Mon, 13 Aug 2012 14:47:38 +0000]
Implement new doc_elt interfaces

23 months agoMove out print_ctxt to it's own source
Andrew Young [Mon, 13 Aug 2012 14:46:47 +0000]
Move out print_ctxt to it's own source

23 months agoFix issue with incorrect doc_elt_keys
Andrew Young [Mon, 13 Aug 2012 14:45:59 +0000]
Fix issue with incorrect doc_elt_keys

23 months agoImplement new isrelated and print strategies.
Andrew Young [Mon, 13 Aug 2012 14:44:07 +0000]
Implement new isrelated and print strategies.

- Add tag merging for org_heading
- Use priorities and todo states$

23 months agoAdd functions to verify todos and priorities
Andrew Young [Mon, 13 Aug 2012 14:42:52 +0000]
Add functions to verify todos and priorities

23 months agoImplement fwrite docstream wrapper
Andrew Young [Mon, 13 Aug 2012 14:41:41 +0000]
Implement fwrite docstream wrapper

23 months agoImplement merging of text using string_merge
Andrew Young [Mon, 13 Aug 2012 14:40:49 +0000]
Implement merging of text using string_merge

23 months agoImplement a line-by-line string merge algorithm
Andrew Young [Mon, 13 Aug 2012 14:39:59 +0000]
Implement a line-by-line string merge algorithm

23 months agoImplement org_property document element
Andrew Young [Mon, 13 Aug 2012 14:38:58 +0000]
Implement org_property document element

23 months agoAdd context sources to makefile
Andrew Young [Mon, 13 Aug 2012 14:37:45 +0000]
Add context sources to makefile

23 months agoImplement argp interface and initialize contexts
Andrew Young [Mon, 13 Aug 2012 14:36:23 +0000]
Implement argp interface and initialize contexts

23 months agoWrite new contexts and interfaces
Andrew Young [Mon, 13 Aug 2012 14:35:55 +0000]
Write new contexts and interfaces

23 months agoAdd private versions of gl_anytree to project
Andrew Young [Mon, 13 Aug 2012 14:26:47 +0000]
Add private versions of gl_anytree to project

* Taken from gnulib
* include small bugfix in bl_anyrbtree

23 months agoProperly initial merge contexts and merge in main
Andrew Young [Wed, 1 Aug 2012 20:20:11 +0000]
Properly initial merge contexts and merge in main

23 months agoAdd global mapping interface to org_text
Andrew Young [Wed, 1 Aug 2012 20:19:26 +0000]
Add global mapping interface to org_text

23 months agoChange the token names in the parser
Andrew Young [Wed, 1 Aug 2012 20:18:51 +0000]
Change the token names in the parser

23 months agoChange token names
Andrew Young [Wed, 1 Aug 2012 20:16:52 +0000]
Change token names

23 months agoAdd merge contexts to org_document
Andrew Young [Wed, 1 Aug 2012 20:13:58 +0000]
Add merge contexts to org_document

23 months agoUpdate org_heading to use movement detection
Andrew Young [Wed, 1 Aug 2012 20:13:08 +0000]
Update org_heading to use movement detection

23 months agoFix bug in doc_reflist_merge
Andrew Young [Wed, 1 Aug 2012 20:10:25 +0000]
Fix bug in doc_reflist_merge

reflist_merge was inserting elements into the new tree using its index
in the old tree, causing elements to be added out of order.  This was
changed to use the index in the new tree.

23 months agoAdd a merge_context, ID keys, and a hook for global matching
Andrew Young [Wed, 1 Aug 2012 20:08:49 +0000]
Add a merge_context, ID keys, and a hook for global matching

23 months agoAdd reflection to elements
Andrew Young [Wed, 1 Aug 2012 20:06:49 +0000]
Add reflection to elements

Reflection is is necessary for elements, as the doc_elt_ops are not
going to be constant; they will eventually be dynamically created and
edited.

23 months agoUpdate the src/Makefile.am
Andrew Young [Wed, 1 Aug 2012 20:05:35 +0000]
Update the src/Makefile.am

* Disable all compiler optimizations
* Add smerger.c

23 months agoAdd search merger
Andrew Young [Wed, 1 Aug 2012 20:03:47 +0000]
Add search merger

The search merger merges elements by searching for their match in a
list.  This will be used for global mapping.

23 months agoAdd printing modules for smerger and listmerge
Andrew Young [Wed, 1 Aug 2012 20:02:44 +0000]
Add printing modules for smerger and listmerge

23 months agoIgnore gnulib rbtree source files in Git
Andrew Young [Wed, 1 Aug 2012 19:55:47 +0000]
Ignore gnulib rbtree source files in Git

23 months agoAdd doc/ automake file for future doc generation
Andrew Young [Wed, 1 Aug 2012 19:54:44 +0000]
Add doc/ automake file for future doc generation

23 months agoImport gnulib's rbtree-list
Andrew Young [Wed, 1 Aug 2012 19:53:48 +0000]
Import gnulib's rbtree-list

23 months agoHook merge rule tests into the automake TAP driver
Andrew Young [Wed, 1 Aug 2012 19:52:33 +0000]
Hook merge rule tests into the automake TAP driver

23 months agoUpdate the merge driver to not error with the new implementation
Andrew Young [Wed, 1 Aug 2012 19:51:32 +0000]
Update the merge driver to not error with the new implementation

23 months agoAdd preliminary merge rule checker
Andrew Young [Wed, 1 Aug 2012 19:50:40 +0000]
Add preliminary merge rule checker

23 months agoAdd doc folder to the automake path
Andrew Young [Wed, 1 Aug 2012 19:46:53 +0000]
Add doc folder to the automake path

23 months agoMake Check an optional package
Andrew Young [Wed, 1 Aug 2012 19:46:38 +0000]
Make Check an optional package

23 months agoDelete unused test files in tests
Andrew Young [Wed, 1 Aug 2012 19:37:41 +0000]
Delete unused test files in tests

2 years agoUpdate main to use new elements
Andrew Young [Fri, 27 Jul 2012 13:09:38 +0000]
Update main to use new elements

2 years agoRemove unused data structures
Andrew Young [Fri, 27 Jul 2012 13:07:38 +0000]
Remove unused data structures

2 years agoUpdate lexer and parser to new element interface
Andrew Young [Fri, 27 Jul 2012 13:03:51 +0000]
Update lexer and parser to new element interface

2 years agoUpdate org_text to use the new interfaces
Andrew Young [Fri, 27 Jul 2012 13:02:46 +0000]
Update org_text to use the new interfaces

2 years agoUpdate org_heading element to use new interface
Andrew Young [Fri, 27 Jul 2012 13:01:32 +0000]
Update org_heading element to use new interface

2 years agoImplement org_document
Andrew Young [Fri, 27 Jul 2012 13:00:02 +0000]
Implement org_document

org_document is the base element for a document.

2 years agoImplement doc_elt support modules
Andrew Young [Fri, 27 Jul 2012 12:56:58 +0000]
Implement doc_elt support modules

* doc_elt_util: utility functions
* doc_ref: references to doc_elts, merging algorithms, and reference
  list utilities
* print: print context, and conflict marker printing

2 years agoDocument doc_stream
Andrew Young [Fri, 27 Jul 2012 12:55:52 +0000]
Document doc_stream

2 years agoUpdate all doc_elt_ops operations
Andrew Young [Fri, 27 Jul 2012 12:54:16 +0000]
Update all doc_elt_ops operations

2 years agoUpdate all doc_elt interfaces
Andrew Young [Fri, 27 Jul 2012 12:53:12 +0000]
Update all doc_elt interfaces

2 years agoUpdate the Makefile to include new sources
Andrew Young [Fri, 27 Jul 2012 12:51:54 +0000]
Update the Makefile to include new sources

2 years agoSet the default debug print level to 1
Andrew Young [Fri, 27 Jul 2012 12:44:14 +0000]
Set the default debug print level to 1

Level 1 only shows critical messages. Set it to level 1 so we don't
clutter the output.

2 years agoAdd text as a property of org_heading
Andrew Young [Thu, 19 Jul 2012 07:44:46 +0000]
Add text as a property of org_heading

2 years agoMake org_text a property of headings
Andrew Young [Thu, 19 Jul 2012 07:42:22 +0000]
Make org_text a property of headings

Org_text is no longer a standalone element.
Text is stored as a property of a heading.
Text is merged when headings are merged.

2 years agoFix typo in doc_merge.c
Andrew Young [Thu, 19 Jul 2012 07:41:03 +0000]
Fix typo in doc_merge.c

2 years agoAdd map keys and map sets to merge_map
Andrew Young [Thu, 19 Jul 2012 07:37:32 +0000]
Add map keys and map sets to merge_map

2 years agoAdd support for printing conflict markers
Andrew Young [Thu, 19 Jul 2012 07:36:01 +0000]
Add support for printing conflict markers

2 years agoMake merge_delta initialize child update to 0
Andrew Young [Thu, 19 Jul 2012 07:33:21 +0000]
Make merge_delta initialize child update to 0

2 years agoMake main initialize merge_print_ctxt
Andrew Young [Thu, 19 Jul 2012 07:32:28 +0000]
Make main initialize merge_print_ctxt

2 years agoInitialize parents to NULL in an ltree
Andrew Young [Thu, 19 Jul 2012 07:31:36 +0000]
Initialize parents to NULL in an ltree

2 years agoMake ancsestor not count children as updates
Andrew Young [Thu, 19 Jul 2012 07:28:58 +0000]
Make ancsestor not count children as updates

2 years agoAdd map set and map keys to doc_elt_ops
Andrew Young [Thu, 19 Jul 2012 07:27:37 +0000]
Add map set and map keys to doc_elt_ops

Map sets and map keys are used for global matchings.

2 years agoAdd map keys and map sets to doc_elt
Andrew Young [Thu, 19 Jul 2012 07:25:27 +0000]
Add map keys and map sets to doc_elt

Map keys and map sets will be used for global matchings.

2 years agoAdd new ops, get_key and get_type
Andrew Young [Fri, 13 Jul 2012 01:11:12 +0000]
Add new ops, get_key and get_type

2 years agoReflect child updates to parent merge_node deltas
Andrew Young [Fri, 13 Jul 2012 00:04:53 +0000]
Reflect child updates to parent merge_node deltas

2 years agoImplement doc_elt_compare for org_text
Andrew Young [Fri, 13 Jul 2012 00:04:27 +0000]
Implement doc_elt_compare for org_text

2 years agoImplement doc_elt_compare in org_heading
Andrew Young [Fri, 13 Jul 2012 00:03:41 +0000]
Implement doc_elt_compare in org_heading

2 years agoChange smerge to merge in function name
Andrew Young [Fri, 13 Jul 2012 00:01:25 +0000]
Change smerge to merge in function name

This was a spelling mistake

2 years agoAdd doc_elt_is_related, change doc_elt_compare
Andrew Young [Thu, 12 Jul 2012 23:56:34 +0000]
Add doc_elt_is_related, change doc_elt_compare

2 years agoAdd note_child_update
Andrew Young [Thu, 12 Jul 2012 05:31:09 +0000]
Add note_child_update

note child update will travel upwards through a merge tree setting the
child_update flag for all parent nodes.

2 years agoFix interface for merge_delta
Andrew Young [Thu, 12 Jul 2012 05:30:21 +0000]
Fix interface for merge_delta

Missing standard interface for setting the child update flag.  Added get
and set for the flag.

2 years agomerge_tree: automatically add parents
Andrew Young [Thu, 12 Jul 2012 05:28:34 +0000]
merge_tree: automatically add parents

When adding children to a merge_node, automatically set the parent to
the other node.

2 years agoAdd child_update field to merge_delta
Andrew Young [Thu, 12 Jul 2012 05:06:47 +0000]
Add child_update field to merge_delta

This is stored so that a parent knows when a structural update is
potentially conflicted with a child update.

2 years agodoc_merge: moving matcing event to function
Andrew Young [Thu, 12 Jul 2012 04:37:22 +0000]
doc_merge: moving matcing event to function

2 years agoAdd debug print levels
Andrew Young [Thu, 12 Jul 2012 04:35:10 +0000]
Add debug print levels

2 years agoAdd debug printing macros
Andrew Young [Thu, 12 Jul 2012 04:34:14 +0000]
Add debug printing macros

2 years agoModify doc_merge to work with new interfaces
Andrew Young [Wed, 11 Jul 2012 14:13:41 +0000]
Modify doc_merge to work with new interfaces

* Move mappping information out of merge_deltas and into a local array
* Use the proper interface to access values instead of accessing them
  directly

2 years agoAdd function to access specific children to dor_tree
Andrew Young [Wed, 11 Jul 2012 14:13:03 +0000]
Add function to access specific children to dor_tree

2 years agoAdd more interface functions for trees
Andrew Young [Wed, 11 Jul 2012 14:12:10 +0000]
Add more interface functions for trees

2 years agoAdd generic function for traverersing ltrees
Andrew Young [Wed, 11 Jul 2012 12:35:25 +0000]
Add generic function for traverersing ltrees

* add ltree_apply.h
* modify merge_print to use ltree_apply

2 years agoRemove poorly placed assert in parser
Andrew Young [Mon, 9 Jul 2012 22:58:29 +0000]
Remove poorly placed assert in parser

The assert is incorrectly reached when the lexer returns an end of file
token.  This causes the parser to abort pretty much every time it runs.

2 years agoAdd compilation instructions to README
Andrew Young [Mon, 9 Jul 2012 22:04:55 +0000]
Add compilation instructions to README

2 years agoUpdate todo and implementation notes
Andrew Young [Mon, 9 Jul 2012 16:37:33 +0000]
Update todo and implementation notes

2 years agoUpdate and add unit tests
Andrew Young [Mon, 9 Jul 2012 16:32:14 +0000]
Update and add unit tests

- update Makefile.am to add new test files
- add test_elt.h, a doc_elt to help with testing
- add tests for merge_print
- add tests for org_text and org_heading
- change the format of test org_documents

2 years agoChange the order project directories are built in
Andrew Young [Mon, 9 Jul 2012 16:24:06 +0000]
Change the order project directories are built in

- build project in order of dependencies.

2 years agoUpdate the makefile and main
Andrew Young [Mon, 9 Jul 2012 16:19:04 +0000]
Update the makefile and main

Just make main call all the modules in the right order.

2 years agoAdd merge_print function
Andrew Young [Mon, 9 Jul 2012 16:15:37 +0000]
Add merge_print function

merge_print is called on a merge tree, to cause all elements to detect
conflicts and print themselves (through doc_elt_merge_print).

merge_print implements a context inheritance mechanism, to
allow parent elements to pass data to their children.

2 years agoFix bug where map fields aren't set
Andrew Young [Mon, 9 Jul 2012 16:08:26 +0000]
Fix bug where map fields aren't set

- The map's change field was not being set for the src.

2 years agoAdd org parser
Andrew Young [Mon, 9 Jul 2012 16:04:17 +0000]
Add org parser

The parser receives constructed document elements and associated tokens
from the lexer.  The parser is responsible for assembling document trees
from this data.

2 years agoRewrite the entire lexer
Andrew Young [Mon, 9 Jul 2012 16:02:21 +0000]
Rewrite the entire lexer

- remove elements with no support
- build up text and heading elements

2 years agoFix org_text strings and implement print_merge
Andrew Young [Mon, 9 Jul 2012 15:53:29 +0000]
Fix org_text strings and implement print_merge

- make org_text initialize at creation
- implement new print_merge interface
- fix segfault at strncat
- fix segfault at print_op
- add new interface functions for the text field