Entry data storage.
[Hints and documentation for developers]

The basic data structure for entries; an entry can be a file, directory, or special node (symlink or device). More...


Data Structures

struct  sstat_t
 A shortened struct stat64. More...
struct  estat
 The central structure for data storage. More...

Defines

#define RF_UNVERSION   (1)
 This item will be unversioned, ie remotely deleted and locally purged from the tree, but not from the filesystem.
#define RF_ADD   (2)
 Such an entry will be sent to the repository as a new item.
#define RF_CHECK   (4)
 This entry should be checked for modifications.
#define RF_PUSHPROPS   (8)
 Properties have changed locally, must be committed.
#define RF_COPY_BASE   (16)
 Set if this entry was marked as copy.
#define RF_COPY_SUB   (32)
 Set if this entry got implicitly copied (sub-entry).
#define RF_CONFLICT   (64)
 Has this entry a conflict?
#define RF_DONT_WRITE   (1 << 18)
 This entry may not be written by waa__output_tree().
#define RF_ISNEW   (1 << 19)
 Whether this entry was just created by ops__traverse().
#define RF_PRINT   (1 << 20)
 Print this entry, even if not changed.
#define RF___SAVE_MASK
 Which of the flags above should be stored in the WAA.
#define RF___COMMIT_MASK   (RF_UNVERSION | RF_ADD | RF_COPY_BASE | RF_PUSHPROPS)
 Mask for commit-relevant flags.
#define RF___IS_COPY   (RF_COPY_BASE | RF_COPY_SUB)
#define CF_UNKNOWN   (0)
#define CF_CHANGED   (1)
#define CF_NOTCHANGED   (2)
#define S_IFUNDEF   (0)
#define S_IFANYSPECIAL   S_IFSOCK
 All sockets get filtered out when the directory gets read, so we can safely reuse that value for the case where we don't know what kind of special entry that is (eg when receiving "svn:special" from the repository).
#define S_ISANYSPECIAL   S_ISSOCK
#define S_IFGARBAGE   S_IFIFO
 These values are used to say that such an entry is lying around and has to be removed first.
#define S_ISGARBAGE   S_ISFIFO

File statii.



#define FS_NO_CHANGE   (0)
#define FS_NEW   (1 << 0)
#define FS_REMOVED   (1 << 1)
#define FS_CHANGED   (1 << 2)
#define FS_LIKELY   (1 << 3)
 This flag says that it's an "approximate" answer, - no hashing has been done.
#define FS_REPLACED   (FS_NEW | FS_REMOVED)
#define FS_PROPERTIES   (1 << 4)
 Flag for update/commit.
#define FS_META_MTIME   (1 << 5)
 Meta-data flags.
#define FS_META_OWNER   (1 << 6)
#define FS_META_GROUP   (1 << 7)
#define FS_META_UMODE   (1 << 8)
#define FS_META_CHANGED
#define FS_CHILD_CHANGED   (1 << 9)
 This flag on a directory entry says that the directory itself was not changed, but some child, so the children of this directory have to be checked for modifications.
#define FS__CHANGE_MASK


Detailed Description

The basic data structure for entries; an entry can be a file, directory, or special node (symlink or device).

Define Documentation

#define CF_CHANGED   (1)

Definition at line 613 of file global.h.

Referenced by cs__compare_file().

#define CF_NOTCHANGED   (2)

Definition at line 614 of file global.h.

Referenced by cs__compare_file(), and ops__copy_single_entry().

#define CF_UNKNOWN   (0)

Change detection flags.

Definition at line 612 of file global.h.

Referenced by cs__compare_file().

#define FS__CHANGE_MASK

#define FS_CHANGED   (1 << 2)

#define FS_CHILD_CHANGED   (1 << 9)

This flag on a directory entry says that the directory itself was not changed, but some child, so the children of this directory have to be checked for modifications.

Definition at line 604 of file global.h.

Referenced by ac__dispatch(), cm__find_copied(), rev___local_revert(), rev__do_changed(), and st__status_string_fromint().

#define FS_LIKELY   (1 << 3)

This flag says that it's an "approximate" answer, - no hashing has been done.

Definition at line 582 of file global.h.

Referenced by ci__nondir(), ops__stat_to_action(), ops__update_single_entry(), st__print_status(), st__status_string_fromint(), waa__update_dir(), and waa__update_tree().

#define FS_META_CHANGED

#define FS_META_GROUP   (1 << 7)

#define FS_META_MTIME   (1 << 5)

#define FS_META_OWNER   (1 << 6)

#define FS_META_UMODE   (1 << 8)

#define FS_NEW   (1 << 0)

#define FS_NO_CHANGE   (0)

Definition at line 576 of file global.h.

Referenced by ops__stat_to_action().

#define FS_PROPERTIES   (1 << 4)

Flag for update/commit.

Note that this doesn't normally get set when a property has been changed locally - for that the persistent flag RF_PUSHPROPS is used.

Definition at line 589 of file global.h.

Referenced by rev___undo_change(), st___meta_string(), st__status_string_fromint(), and up__parse_prop().

#define FS_REMOVED   (1 << 1)

#define FS_REPLACED   (FS_NEW | FS_REMOVED)

#define RF___COMMIT_MASK   (RF_UNVERSION | RF_ADD | RF_COPY_BASE | RF_PUSHPROPS)

Mask for commit-relevant flags.

An entry with RF_COPY_BASE must (per definition) marked as RF_ADD; and RF_PUSHPROPS gets folded into FS_PROPERTIES.

Definition at line 567 of file global.h.

Referenced by ci__action().

#define RF___IS_COPY   (RF_COPY_BASE | RF_COPY_SUB)

#define RF___SAVE_MASK

Value:

Which of the flags above should be stored in the WAA.

Definition at line 562 of file global.h.

Referenced by ops__save_1entry().

#define RF_ADD   (2)

Such an entry will be sent to the repository as a new item.

Used if this entry would get ignored by some pattern, but the user has specifically told to take it, too.

Definition at line 534 of file global.h.

Referenced by au__action(), ci___unset_copyflags(), cm___ignore_impl_copied(), cm___make_copy(), ops__save_1entry(), prp__s_work(), rev___revert_to_base(), st__flags_string_fromint(), st__print_status(), st__status(), waa___check_dir_for_update(), and waa__partial_update().

#define RF_CHECK   (4)

This entry should be checked for modifications.

Is currently used for directories; if they are stored in the WAA with their current mtime they wouldn't get checked for modifications. Using this flag it's possibly to specify that they should be read.

Note:
Persistent until commit!

Definition at line 540 of file global.h.

Referenced by cm___ignore_impl_copied(), cs__set_file_committed(), rev___handle_dir_mtime(), rev___revert_to_base(), rev__do_changed(), st__flags_string_fromint(), st__print_status(), sync__progress(), sync__work(), up__close_directory(), and waa___check_dir_for_update().

#define RF_CONFLICT   (64)

#define RF_COPY_BASE   (16)

Set if this entry was marked as copy.

If it is a directory, the children will have the RF_COPY_SUB flag, unless the copy attribute is not inherited, but they're themselves copies from other entries.

Definition at line 549 of file global.h.

Referenced by ci___unset_copyflags(), cm___get_sub_source_rek(), cm___make_copy(), cm__get_source(), cm__uncopy(), ops__save_1entry(), rev___revert_to_base(), st__flags_string_fromint(), and st__print_status().

#define RF_COPY_SUB   (32)

#define RF_DONT_WRITE   (1 << 18)

This entry may not be written by waa__output_tree().

Definition at line 555 of file global.h.

Referenced by ops__should_entry_be_written_in_list().

#define RF_ISNEW   (1 << 19)

Whether this entry was just created by ops__traverse().

Definition at line 557 of file global.h.

Referenced by cm___make_copy(), ops__copy_single_entry(), ops__traverse(), prp__s_work(), res__action(), st__status(), waa__partial_update(), and waa__update_dir().

#define RF_PRINT   (1 << 20)

Print this entry, even if not changed.

Definition at line 559 of file global.h.

Referenced by info__action(), rev___revert_to_base(), and st__print_entry_info().

#define RF_PUSHPROPS   (8)

Properties have changed locally, must be committed.

Needed in case this is the only change - else we would not commit this entry.

Definition at line 544 of file global.h.

Referenced by cm___ignore_impl_copied(), cs__set_file_committed(), ops__apply_group(), prp__s_work(), st___meta_string(), and st__flags_string_fromint().

#define RF_UNVERSION   (1)

This item will be unversioned, ie remotely deleted and locally purged from the tree, but not from the filesystem.

Various flags for entries.

The RF means repos-flags, as these flags have a meaning when talking to the repository.

Definition at line 530 of file global.h.

Referenced by au__action(), rev___revert_to_base(), st__flags_string_fromint(), and st__print_status().

#define S_IFANYSPECIAL   S_IFSOCK

All sockets get filtered out when the directory gets read, so we can safely reuse that value for the case where we don't know what kind of special entry that is (eg when receiving "svn:special" from the repository).

Definition at line 516 of file global.h.

Referenced by df___repos_repos(), df___type_def_diff(), and up__parse_prop().

#define S_IFGARBAGE   S_IFIFO

These values are used to say that such an entry is lying around and has to be removed first.

Definition at line 520 of file global.h.

Referenced by hlp__lstat(), and st__type_string().

#define S_IFUNDEF   (0)

Special FSVS file type constants.

Definition at line 511 of file global.h.

Referenced by cb__add_entry().

#define S_ISANYSPECIAL   S_ISSOCK

Definition at line 517 of file global.h.

Referenced by sync__progress(), and up__parse_prop().

#define S_ISGARBAGE   S_ISFIFO

Definition at line 521 of file global.h.

Referenced by rev___undo_change().


Generated for fsvs by  doxygen 1.5.9