2001-02-20 Bradford Hovinen * location.c (compare_xml_nodes): Use attr->val rather than attr->node 2001-02-19 Bradford Hovinen * location.c (location_foreach_backend): Update to use BackendNote (do_rollback): Don't do rollback if the doc is NULL (location_store_xml): Return if this location does not contain the backend specified (location_store_xml): Use fprintf rather than g_warning (subtract_xml_node): (merge_xml_nodes): Update child node while iterating * config-log.c (config_log_get_rollback_ids_for_date): Remove * location.c (location_set_arg): ref inherited object * main.c (main): Don't check if the location is default; don't create default location if non-existant (main): Signal error if the user is adding a location and did not specify a name (main): Use fprintf to signal the error that a location could not be opened (main): Signal error and exit when archive cannot be opened, rather than using g_error (do_add_location): Check for NULL location_id (do_add_location): Create default location if it does not exist and it is specified as the parent * archive.c (archive_get_current_location_id): Create the default location if it does not exist * backend-list.c (backend_list_contains): Use strcmp and iterate through the list * location.c (location_contains): Read whether the backend is in the master list if this location is toplevel 2001-02-18 Bradford Hovinen * main.c (do_add_backend): Support ContainmentType specification (do_store): Support StoreType specification (struct store_options): Add set of options to support compare_parent, mask_previous, options (struct add_remove_backend_options): Add option for partial containment when adding backend * location.c (subtract_xml_node): (merge_xml_nodes): (compare_xml_nodes): (merge_xml_docs): (subtract_xml_doc): Implement. XML node compare/merging operations (location_store): Rewrite to call location_store_xml (location_store_xml): Include support for diffing with configuration data from parent config (location_dump_rollback_data): Rewrite to use location_load_rollback_data (dump_xml_data): Remove (do_rollback): Rewrite to use xmlDocDump; pass xmlDocPtr rather than id number (location_rollback_id): Add node merging support (location_rollback_backend_by): (location_rollback_backend_to): Rewrite to use location_load_rollback_data (location_rollback_backends_to): Rewrite to iterate through backend list and call location_rollback_backend_to for each element (location_rollback_all_to): Ditto 2001-02-14 Bradford Hovinen * location.h (_ContainmentType): Introduce. Specifies the type of containment (full, partial, none), of a backend in a location * location.c: Added struct BackendNote; have backend list include type of containment as well as backend id (location_contains): Use find_note (find_note): Implement. Finds a note for the given backend id in the backend list (backend_note_new): (backend_note_destroy): Implement. Convenience functions for creating and destroying backend notes (load_metadata_file): (write_metadata_file): Read/write type of backend containment (full or partial) (location_add_backend): Pass parameter telling whether containment is partial 2001-01-25 Bradford Hovinen * config-log.c (get_current_date): Use local time rather than Greenwich Mean Time * location.c (location_store_xml): Implement; copy from location_store (location_store): Free filename after use * archive.c (archive_load): Free prefix only if not global * location.c (location_rollback_all_to): Increment array * util.c (parse_date): Normalize values 2001-01-24 Bradford Hovinen * config-log.c (do_load): Disabled locking for now * archiver-spec: Added fine-grained location management description 2001-01-15 Bradford Hovinen * Makefile.am: Added rule for ximian_archiverConf.sh; add installation target for Conf.sh 2001-01-13 Bradford Hovinen * Makefile.am: Replaced occurrences of helix with ximian Removed references to ximian_config_manager 2000-12-22 Bradford Hovinen * archive.c (foreach_cb): (archive_foreach_child_location): Use auxillary structure to pass data to traversal callback (archive_get_location): (archive_register_location): strdup() location ids (free_location_cb): free() key 2000-12-20 Bradford Hovinen * location.c (location_get_parent): Implement * archive.c (load_all_locations): Implement (foreach_cb): (archive_foreach_child_location): Implement 2000-12-19 Bradford Hovinen * Makefile.am (bin_PROGRAMS): Changed name of archiver to helix-archiver (lib_LIBRARIES): Added libhelix_archiver.a (helix_archiver_SOURCES): Moved archiver core to libhelix_archiver_a_SOURCES (helix_archiver_LDADD): Added libhelix_archiver.a (INCLUDES): Changed XML_CFLAGS to GNOME_XML_CFLAGS (include_HEADERS): Create and include headers for libhelix_archiver.a (includedir): Set includedire to include/helix-archiver 2000-12-18 Bradford Hovinen * main.c (do_rollback): Support rolling back by steps * location.c (location_rollback_backend_by): Implement (location_dump_rollback_data): Support passing steps as well as date * config-log.c (config_log_get_rollback_id_by_steps): Implement * location.c (write_metadata_file): Don't support writing out the master list any more (save_metadata): Ditto (load_metadata_file): Get backends list from BackendList object (rather than finding it out oneself) if location is toplevel (do_create): Ditto (get_backends_cb): Implement (location_add_backend): Add return values for error conditions 2000-10-15 Bradford Hovinen * location.c (location_rollback_backends_to): Free id_array when done * config-log.c (config_log_reset_filenames): Implement * archive.c (archive_set_current_location_id): Move gnome_config_ code from set_current_location * location.c (location_set_id): Implement * main.c (do_rename_location): Implement * archive.c (free_location_cb): Don't free locid (archive_get_location): (archive_register_location): Don't strdup the location id (archive_set_current_location_id): Implement * main.c: Add options for renaming locations and specifying that backends should be added to or removed from the master list * location.c (run_backend_proc): Close all descriptors other than 0, 1, 2 (location_set_id): Implement (location_set_arg): Free previous locid if exists * archive.c (add_location_cb): Implement (archive_set_current_location): Add location change algorithm * location.c (location_find_path_from_common_parent): Implement (location_foreach_backend): Implement * archive.c (archive_set_current_location): Set archive->current_location_id * main.c (do_add_location): Check parent_str for NULL before loading location (do_change_location): Implement (main): Support changing location * archive.c (archive_register_location): Implement * location.c (do_create): (do_load): Use archive_get_prefix (do_create): Load global location metadata if this location does not inherit from anything (location_get_id): Implement * archive.c (archive_get_prefix): Implement * location.c (location_get_path): Implement (load_metadata_file): Use archive_is_global (location_set_arg): Set label when setting locid * location.[ch]: Make all data members private * main.c (main): Get current location name properly, create location iff location id is "default"; bail out with error otherwise (do_remove_location): (do_add_location): Implement * config-log.c: Include ctype.h to fix implicit declarations * location.c (location_rollback_backends_to): Property initialize i (location_contains): Fix precondition checks (do_create): Remove unused variables * archive.c (archive_get_location): Make a copy of locid before working with it (do_load): Fix precondition checks * location.c (location_open): (location_new): Make locid const * archive.c (archive_get_location): Make locid const * location.c (data_delete_cb): (location_delete): Implement * config-log.c (config_log_iterate): Implement (config_log_destroy): Make private, pass GtkObject (config_log_delete): Implement 2000-10-14 Bradford Hovinen * location.c (location_close): Add precondition checks * archive.c (archive_destroy): Make private; pass GtkObject * location.c (location_add_backend): (location_remove_backend): Add precondition checks (location_destroy): Make private (location_destroy): Pass GtkObject pointer rather than Location pointer; this cleans up assignment in _class_init * archive.c (archive_get_current_location_id): Implement (archive_get_current_location): Implement 2000-09-03 Bradford Hovinen * location.c (location_new): Set is_new (save_metadata): Don't write file unless necessary (save_metadata): (write_metadata_file): Split out file writing into write_metadata_file; write default data file as necessary (location_add_backend): (location_remove_backend): Implement * main.c: Add command line arguments for adding/removing locations and backends; move backend id argument into global options * location.c (do_load): (load_metadata_file): Split out file parsing logic into load_metadata_file; call load_metadata_file on default file to get contains list if current location doesn't inherit anything (load_metadata_file): g_strdup backend string (load_metadata_file): Warn if top-level location has contains clauses (location_store): Check if the location contains the given backend and try the location it inherits if it doesn't * archive.c (archive_load): Set is_global in archive object * Makefile.am (Locationmeta{dir|_DATA}): Added commands to install data files (INCLUDES): Added define for LOCATION_DIR 2000-09-03 Bradford Hovinen * location.c (save_metadata): Write attributes when saving