Differences between revisions 11 and 12
Revision 11 as of 2005-12-12 20:48:04
Size: 16226
Editor: KenSchalk
Comment: #replicate-from, #mastrship-to, #mastership-from
Revision 12 as of 2016-05-17 02:41:05
Size: 16376
Editor: localhost
Comment: converted to 1.6 markup
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
This page describes attributes used by the [http://www.vestasys.org/doc/man/html/repository.8.html repository server] and [http://www.vestasys.org/doc/man/html/repos-ui.1.html repository tools]. (It doesn't yet describe all of them fully, but that's the plan.) This page describes attributes used by the [[http://www.vestasys.org/doc/man/html/repository.8.html|repository server]] and [[http://www.vestasys.org/doc/man/html/repos-ui.1.html|repository tools]]. (It doesn't yet describe all of them fully, but that's the plan.)
Line 3: Line 3:
Of course users and new client applications can set other attributes with [http://www.vestasys.org/doc/man/html/vattrib.1.html vattrib] or the repository's VestaSource API. This page is meant to descibe those attributes used by the core Vesta tools. Of course users and new client applications can set other attributes with [[http://www.vestasys.org/doc/man/html/vattrib.1.html|vattrib]] or the repository's VestaSource API. This page is meant to descibe those attributes used by the core Vesta tools.
Line 5: Line 5:
Note that attributes which start with a pound sign (#) are considered ''access control attributes'' and are treated differently in some ways (e.g. [http://www.vestasys.org/doc/man/html/vrepl.1.html#-a during replication]). Note that attributes which start with a pound sign (#) are considered ''access control attributes'' and are treated differently in some ways (e.g. [[http://www.vestasys.org/doc/man/html/vrepl.1.html#-a|during replication]]).
Line 7: Line 7:
 checkin-by:: The user who performed a checkin as a [http://www.vestasys.org/doc/man/html/repository.8.html#Principal%20identification%20and%20authentication global name] (''username''@''realm''). Set by [http://www.vestasys.org/doc/man/html/vcheckin.1.html vcheckin]. Found on checked-in versions and [http://www.vestasys.org/doc/man/html/vesta-intro.1.html#session session directories].
 checkin-time:: A string representation of the time that a checkin was performed. The exact format of this string is controlled by the {{{[UserInterface]TimeFormat}}} configuration setting, which is used with stftime(3). Set by [http://www.vestasys.org/doc/man/html/vcheckin.1.html vcheckin]. Found on checked-in versions and [http://www.vestasys.org/doc/man/html/vesta-intro.1.html#session session directories].
 checkout-by:: The user who performed a checkout as a [http://www.vestasys.org/doc/man/html/repository.8.html#Principal%20identification%20and%20authentication global name] (''username''@''realm''). Set by [http://www.vestasys.org/doc/man/html/vcheckout.1.html vcheckout]. Found on [http://www.vestasys.org/doc/man/html/vesta-intro.1.html#reservation_stub version reservation stubs], [http://www.vestasys.org/doc/man/html/vesta-intro.1.html#working_directory working directories], [http://www.vestasys.org/doc/man/html/vesta-intro.1.html#session session directories], and checked-in versions. Set by [http://www.vestasys.org/doc/man/html/vcheckout.1.html vcheckout]. Found on
 checkout-from:: A repository server specification (''host'':''port'') pointing to the remote master repository where an object was originally created. Used when a checkout is performed at a repository with a non-master replica. Set by [http://www.vestasys.org/doc/man/html/vcheckout.1.html vcheckout]. Found on [http://www.vestasys.org/doc/man/html/vesta-intro.1.html#reservation_stub version reservation stubs] and [http://www.vestasys.org/doc/man/html/vesta-intro.1.html#session session directories]. Read from the reservation stub by [http://www.vestasys.org/doc/man/html/vcheckin.1.html vcheckin] to replicate a new version back to the rmeote master repository.
 checkout-time:: A string representation of the time that a checkout was performed. The exact format of this string is controlled by the {{{[UserInterface]TimeFormat}}} configuration setting, which is used with stftime(3). Set by [http://www.vestasys.org/doc/man/html/vcheckout.1.html vcheckout]. Found on [http://www.vestasys.org/doc/man/html/vesta-intro.1.html#reservation_stub version reservation stubs], [http://www.vestasys.org/doc/man/html/vesta-intro.1.html#working_directory working directories], [http://www.vestasys.org/doc/man/html/vesta-intro.1.html#session session directories], and checked-in versions.
 checkout-to:: A repository server specification (''host'':''port'') pointing to the local repository of a checkout (i.e. where the working directory is, where snapshots are taken with [http://www.vestasys.org/doc/man/html/vadvance.1.html vadvance], and where the new version will be checked in). Used when a checkout is performed at a repository with a non-master replica. Set by [http://www.vestasys.org/doc/man/html/vcheckout.1.html vcheckout]. Found on [http://www.vestasys.org/doc/man/html/vesta-intro.1.html#reservation_stub version reservation stubs] and [http://www.vestasys.org/doc/man/html/vesta-intro.1.html#session session directories]. Read from the reservation stub by [http://www.vestasys.org/doc/man/html/vwhohas.1.html vwhohas] to display which repository a checkout is local to.
 content:: The full path to the immutable version which this version was filled in from. Set by [http://www.vestasys.org/doc/man/html/vcheckin.1.html vcheckin]. Found on versions. Usually this refers to a snapshot taken with [http://www.vestasys.org/doc/man/html/vadvance.1.html vadvance], but [http://www.vestasys.org/doc/man/html/vcheckin.1.html#-c vcheckin's -c option] can be used to specify the content explicitly.
 created-by:: The user who created a package or branch as a [http://www.vestasys.org/doc/man/html/repository.8.html#Principal%20identification%20and%20authentication global name] (''username''@''realm''). Set by [http://www.vestasys.org/doc/man/html/vcreate.1.html vcreate] and [http://www.vestasys.org/doc/man/html/vbranch.1.html vbranch]. Found on [http://www.vestasys.org/doc/man/html/vesta-intro.1.html#package packages] and [http://www.vestasys.org/doc/man/html/vesta-intro.1.html#branch branches].
 creation-time:: A string representation of the time that a package or branch was created. The exact format of this string is controlled by the {{{[UserInterface]TimeFormat}}} configuration setting, which is used with stftime(3). Set by [http://www.vestasys.org/doc/man/html/vcreate.1.html vcreate] and [http://www.vestasys.org/doc/man/html/vbranch.1.html vbranch]. Found on [http://www.vestasys.org/doc/man/html/vesta-intro.1.html#package packages] and [http://www.vestasys.org/doc/man/html/vesta-intro.1.html#branch branches].
 #formerly:: When an object in an [http://www.vestasys.org/doc/man/html/vesta-intro.1.html#appendable_directory appendable directory] is deleted through the repository's NFS iterface, it gets replaced with a [http://www.vestasys.org/doc/man/html/vesta-intro.1.html#ghost ghost]. When certain objects are deleted in this way, the repository records some of the information which would otherwise be lost in a {{{#formerly}}} attribute on the ghost. Specifically:
 checkin-by:: The user who performed a checkin as a [[http://www.vestasys.org/doc/man/html/repository.8.html#Principal%20identification%20and%20authentication|global name]] (''username''@''realm''). Set by [[http://www.vestasys.org/doc/man/html/vcheckin.1.html|vcheckin]]. Found on checked-in versions and [[http://www.vestasys.org/doc/man/html/vesta-intro.1.html#session|session directories]].
 checkin-time:: A string representation of the time that a checkin was performed. The exact format of this string is controlled by the {{{[UserInterface]TimeFormat}}} configuration setting, which is used with stftime(3). Set by [[http://www.vestasys.org/doc/man/html/vcheckin.1.html|vcheckin]]. Found on checked-in versions and [[http://www.vestasys.org/doc/man/html/vesta-intro.1.html#session|session directories]].
 checkout-by:: The user who performed a checkout as a [[http://www.vestasys.org/doc/man/html/repository.8.html#Principal%20identification%20and%20authentication|global name]] (''username''@''realm''). Set by [[http://www.vestasys.org/doc/man/html/vcheckout.1.html|vcheckout]]. Found on [[http://www.vestasys.org/doc/man/html/vesta-intro.1.html#reservation_stub|version reservation stubs]], [[http://www.vestasys.org/doc/man/html/vesta-intro.1.html#working_directory|working directories]], [[http://www.vestasys.org/doc/man/html/vesta-intro.1.html#session|session directories]], and checked-in versions. Set by [[http://www.vestasys.org/doc/man/html/vcheckout.1.html|vcheckout]]. Found on
 checkout-from:: A repository server specification (''host'':''port'') pointing to the remote master repository where an object was originally created. Used when a checkout is performed at a repository with a non-master replica. Set by [[http://www.vestasys.org/doc/man/html/vcheckout.1.html|vcheckout]]. Found on [[http://www.vestasys.org/doc/man/html/vesta-intro.1.html#reservation_stub|version reservation stubs]] and [[http://www.vestasys.org/doc/man/html/vesta-intro.1.html#session|session directories]]. Read from the reservation stub by [[http://www.vestasys.org/doc/man/html/vcheckin.1.html|vcheckin]] to replicate a new version back to the rmeote master repository.
 checkout-time:: A string representation of the time that a checkout was performed. The exact format of this string is controlled by the {{{[UserInterface]TimeFormat}}} configuration setting, which is used with stftime(3). Set by [[http://www.vestasys.org/doc/man/html/vcheckout.1.html|vcheckout]]. Found on [[http://www.vestasys.org/doc/man/html/vesta-intro.1.html#reservation_stub|version reservation stubs]], [[http://www.vestasys.org/doc/man/html/vesta-intro.1.html#working_directory|working directories]], [[http://www.vestasys.org/doc/man/html/vesta-intro.1.html#session|session directories]], and checked-in versions.
 checkout-to:: A repository server specification (''host'':''port'') pointing to the local repository of a checkout (i.e. where the working directory is, where snapshots are taken with [[http://www.vestasys.org/doc/man/html/vadvance.1.html|vadvance]], and where the new version will be checked in). Used when a checkout is performed at a repository with a non-master replica. Set by [[http://www.vestasys.org/doc/man/html/vcheckout.1.html|vcheckout]]. Found on [[http://www.vestasys.org/doc/man/html/vesta-intro.1.html#reservation_stub|version reservation stubs]] and [[http://www.vestasys.org/doc/man/html/vesta-intro.1.html#session|session directories]]. Read from the reservation stub by [[http://www.vestasys.org/doc/man/html/vwhohas.1.html|vwhohas]] to display which repository a checkout is local to.
 content:: The full path to the immutable version which this version was filled in from. Set by [[http://www.vestasys.org/doc/man/html/vcheckin.1.html|vcheckin]]. Found on versions. Usually this refers to a snapshot taken with [[http://www.vestasys.org/doc/man/html/vadvance.1.html|vadvance]], but [[http://www.vestasys.org/doc/man/html/vcheckin.1.html#-c|vcheckin's -c option]] can be used to specify the content explicitly.
 created-by:: The user who created a package or branch as a [[http://www.vestasys.org/doc/man/html/repository.8.html#Principal%20identification%20and%20authentication|global name]] (''username''@''realm''). Set by [[http://www.vestasys.org/doc/man/html/vcreate.1.html|vcreate]] and [[http://www.vestasys.org/doc/man/html/vbranch.1.html|vbranch]]. Found on [[http://www.vestasys.org/doc/man/html/vesta-intro.1.html#package|packages]] and [[http://www.vestasys.org/doc/man/html/vesta-intro.1.html#branch|branches]].
 creation-time:: A string representation of the time that a package or branch was created. The exact format of this string is controlled by the {{{[UserInterface]TimeFormat}}} configuration setting, which is used with stftime(3). Set by [[http://www.vestasys.org/doc/man/html/vcreate.1.html|vcreate]] and [[http://www.vestasys.org/doc/man/html/vbranch.1.html|vbranch]]. Found on [[http://www.vestasys.org/doc/man/html/vesta-intro.1.html#package|packages]] and [[http://www.vestasys.org/doc/man/html/vesta-intro.1.html#branch|branches]].
 #formerly:: When an object in an [[http://www.vestasys.org/doc/man/html/vesta-intro.1.html#appendable_directory|appendable directory]] is deleted through the repository's NFS iterface, it gets replaced with a [[http://www.vestasys.org/doc/man/html/vesta-intro.1.html#ghost|ghost]]. When certain objects are deleted in this way, the repository records some of the information which would otherwise be lost in a {{{#formerly}}} attribute on the ghost. Specifically:
Line 18: Line 18:
  * Any other non-[http://www.vestasys.org/doc/man/html/vesta-intro.1.html#stub stub] object (such as an [http://www.vestasys.org/doc/man/html/vesta-intro.1.html#immutable_directory immutable directory]) will have a its fingerprint (a 128-bit number which uniquely identifies the object) recorded in the {{{#formerly}}} attribute on the ghost   * Any other non-[[http://www.vestasys.org/doc/man/html/vesta-intro.1.html#stub|stub]] object (such as an [[http://www.vestasys.org/doc/man/html/vesta-intro.1.html#immutable_directory|immutable directory]]) will have a its fingerprint (a 128-bit number which uniquely identifies the object) recorded in the {{{#formerly}}} attribute on the ghost
Line 20: Line 20:
 #group:: The group of this object as a [http://www.vestasys.org/doc/man/html/repository.8.html#Principal%20identification%20and%20authentication global name] (^''groupname''@''realm''). Also defines the group of any files and subdirectories contained by the object with the {{{#group}}} attribute. The group is inherited downward until another {{{#group}}} attribute is found. Set by the repository's NFS interface (e.g. by using {{{chgrp(1)}}}). Can have multiple values, in which case the group permissions apply to members of all the listed groups. (One must use [http://www.vestasys.org/doc/man/html/vattrib.1.html vattrib] to give an object multiple groups.) The UNIX group presented through NFS is the first group found which has a UNIX group ID mapping. If no group with a local group ID mapping is found, the group id given by the {{{[Repository]vforeign_gid}}} is used instead.
 #master-grant:: This attribute is used by the repository during the [http://www.vestasys.org/doc/man/html/vesta-intro.1.html#master mastership] transfer protocol. There's usually no reason to examine or manipulate it.
 master-repository:: A list of repositories (''hostname'':''port'') to consult when looking for the [http://www.vestasys.org/doc/man/html/vesta-intro.1.html#master master] copy of an object. Set automatically by the repository when creating new objects or transaferring mastership between repositories. (This attribute is considered to be a hint and is not authoritative or even neccessarily correct.)
 #master-request:: This attribute is used by the repository during the [http://www.vestasys.org/doc/man/html/vesta-intro.1.html#master mastership] transfer protocol. There's usually no reason to examine or manipulate it.
 #group:: The group of this object as a [[http://www.vestasys.org/doc/man/html/repository.8.html#Principal%20identification%20and%20authentication|global name]] (^''groupname''@''realm''). Also defines the group of any files and subdirectories contained by the object with the {{{#group}}} attribute. The group is inherited downward until another {{{#group}}} attribute is found. Set by the repository's NFS interface (e.g. by using {{{chgrp(1)}}}). Can have multiple values, in which case the group permissions apply to members of all the listed groups. (One must use [[http://www.vestasys.org/doc/man/html/vattrib.1.html|vattrib]] to give an object multiple groups.) The UNIX group presented through NFS is the first group found which has a UNIX group ID mapping. If no group with a local group ID mapping is found, the group id given by the {{{[Repository]vforeign_gid}}} is used instead.
 #master-grant:: This attribute is used by the repository during the [[http://www.vestasys.org/doc/man/html/vesta-intro.1.html#master|mastership]] transfer protocol. There's usually no reason to examine or manipulate it.
 master-repository:: A list of repositories (''hostname'':''port'') to consult when looking for the [[http://www.vestasys.org/doc/man/html/vesta-intro.1.html#master|master]] copy of an object. Set automatically by the repository when creating new objects or transaferring mastership between repositories. (This attribute is considered to be a hint and is not authoritative or even neccessarily correct.)
 #master-request:: This attribute is used by the repository during the [[http://www.vestasys.org/doc/man/html/vesta-intro.1.html#master|mastership]] transfer protocol. There's usually no reason to examine or manipulate it.
Line 26: Line 26:
 message:: A descriptive message about an object. Set by [http://www.vestasys.org/doc/man/html/vcreate.1.html vcreate] on packages, [http://www.vestasys.org/doc/man/html/vbranch.1.html vbranch] on branches, [http://www.vestasys.org/doc/man/html/vcheckout.1.html vcheckout] on [http://www.vestasys.org/doc/man/html/vesta-intro.1.html#reservation_stub reservation stubs] and [http://www.vestasys.org/doc/man/html/vesta-intro.1.html#session session directories], and [http://www.vestasys.org/doc/man/html/vcheckin.1.html vcheckin] on new versions.
 #mode:: The user, group, and world permissions for this object as UNIX-style mode bits in octal. Also defines the permissions of any files and subdirectories contained by the object with the {{{#mode}}} attribute. The permissions are inherited downward until another {{{#mode}}} attribute is found. Set by the repository's NFS interface (e.g. by using {{{chmod(1)}}}). The interpretation of the bits in {{{#mode}}} [http://www.vestasys.org/doc/man/html/repository.8.html#Access%20controls is described in greater detail on the repository man page].
 message:: A descriptive message about an object. Set by [[http://www.vestasys.org/doc/man/html/vcreate.1.html|vcreate]] on packages, [[http://www.vestasys.org/doc/man/html/vbranch.1.html|vbranch]] on branches, [[http://www.vestasys.org/doc/man/html/vcheckout.1.html|vcheckout]] on [[http://www.vestasys.org/doc/man/html/vesta-intro.1.html#reservation_stub|reservation stubs]] and [[http://www.vestasys.org/doc/man/html/vesta-intro.1.html#session|session directories]], and [[http://www.vestasys.org/doc/man/html/vcheckin.1.html|vcheckin]] on new versions.
 #mode:: The user, group, and world permissions for this object as UNIX-style mode bits in octal. Also defines the permissions of any files and subdirectories contained by the object with the {{{#mode}}} attribute. The permissions are inherited downward until another {{{#mode}}} attribute is found. Set by the repository's NFS interface (e.g. by using {{{chmod(1)}}}). The interpretation of the bits in {{{#mode}}} [[http://www.vestasys.org/doc/man/html/repository.8.html#Access%20controls|is described in greater detail on the repository man page]].
Line 34: Line 34:
 #owner:: The owner of this object as a [http://www.vestasys.org/doc/man/html/repository.8.html#Principal%20identification%20and%20authentication global name] (''username''@''realm''). Also defines the owner of any files and subdirectories contained by the object with the {{{#owner}}} attribute. The owner is inherited downward until another {{{#owner}}} attribute is found. Set by the repository's NFS interface (e.g. by using {{{chown(1)}}}). Can have multiple values, in which case the owner permissions apply to all the listed users. (One must use [http://www.vestasys.org/doc/man/html/vattrib.1.html vattrib] to give an object multiple owners.) The UNIX owner presented through NFS is the first owner found which has a UNIX user ID mapping. If no owner with a local user ID mapping is found, the user id given by the {{{[Repository]vforeign_uid}}} is used instead.  #owner:: The owner of this object as a [[http://www.vestasys.org/doc/man/html/repository.8.html#Principal%20identification%20and%20authentication|global name]] (''username''@''realm''). Also defines the owner of any files and subdirectories contained by the object with the {{{#owner}}} attribute. The owner is inherited downward until another {{{#owner}}} attribute is found. Set by the repository's NFS interface (e.g. by using {{{chown(1)}}}). Can have multiple values, in which case the owner permissions apply to all the listed users. (One must use [[http://www.vestasys.org/doc/man/html/vattrib.1.html|vattrib]] to give an object multiple owners.) The UNIX owner presented through NFS is the first owner found which has a UNIX user ID mapping. If no owner with a local user ID mapping is found, the user id given by the {{{[Repository]vforeign_uid}}} is used instead.
Line 38: Line 38:
 #setgid:: The group for which the UNIX "set group ID" bit should be turned on for this object as [http://www.vestasys.org/doc/man/html/repository.8.html#Principal%20identification%20and%20authentication global name] (^''groupname''@''realm''). If the group represented through the NFS interface (the first group in the {{{#group}}} attribute which has a local UNIX group id mapping) is also in the {{{#setgid}}} attribute, then the setgid bit will be on in the NFS interface. For security reasons, a user can only add a group which they are a member of to the {{{#setgid}}} attribute.
 #setuid:: The user for which the UNIX "set user ID" bit should be turned on for this object as [http://www.vestasys.org/doc/man/html/repository.8.html#Principal%20identification%20and%20authentication global name] (''username''@''realm''). If the owner represented through the NFS interface (the first user in the {{{#owner}}} attribute which has a local UNIX user id mapping) is also in the {{{#setuid}}} attribute, then the setuid bit will be on in the NFS interface. For security reasons, a user can only add their own global username to the {{{#setuid}}} attribute, not that of other users.
 symlink-to:: A [http://www.vestasys.org/doc/man/html/vesta-intro.1.html#stub stub] or [http://www.vestasys.org/doc/man/html/vesta-intro.1.html#ghost ghost] which has a {{{symlink-to}}} attribute will appear as a symbolic link through the repository's NFS interface. The attribute value is the link value, unless the attribute value is the special string "{{{$LAST}}}" in which case the link value is the highest integer-numbered object in the same directory that is not a ghost or a stub. This attribute is most often seen on the "{{{latest}}}" symbolic link in packages, where it has the special value "{{{$LAST}}}".
 type:: The repository provides primitive types like [http://www.vestasys.org/doc/man/html/vesta-intro.1.html#appendable_directory appendable directories] and [http://www.vestasys.org/doc/man/html/vesta-intro.1.html#immutable_directory immutable directories]. The [http://www.vestasys.org/doc/man/html/repos-ui.1.html repository tools] manipulate higher-level objects like [http://www.vestasys.org/doc/man/html/vesta-intro.1.html#package packages] built out of these primitive types. The {{{type}}} attribute is used to denote which of these higher-level constructs a particular directory in the repository represents. The values found in the {{{type}}} attribute are:
  * '''package''': Found on [http://www.vestasys.org/doc/man/html/vesta-intro.1.html#package packages]. Set by [http://www.vestasys.org/doc/man/html/vcreate.1.html vcreate] and [http://www.vestasys.org/doc/man/html/vbranch.1.html vbranch] (as a branch is also a package). [http://www.vestasys.org/doc/man/html/vcheckout.1.html vcheckout] will only operate on an appendable directory with {{{package}}} in it's {{{type}}} attribute.
  * '''branch''': Found on [http://www.vestasys.org/doc/man/html/vesta-intro.1.html#branch branches]. Set by [http://www.vestasys.org/doc/man/html/vbranch.1.html vbranch]. Note that a branch is also a package, so an appendable directory with {{{branch}}} in it's {{{type}}} attribute will also have {{{package}}} in it's {{{type}}} attribute.
  * '''session''': Found on [http://www.vestasys.org/doc/man/html/vesta-intro.1.html#session session directories]. Set by [http://www.vestasys.org/doc/man/html/vcheckout.1.html vcheckout]. [http://www.vestasys.org/doc/man/html/vadvance.1.html vadvance] places snapshots into directories which have {{{session}}} in their {{{type}}} attribute.
 #setgid:: The group for which the UNIX "set group ID" bit should be turned on for this object as [[http://www.vestasys.org/doc/man/html/repository.8.html#Principal%20identification%20and%20authentication|global name]] (^''groupname''@''realm''). If the group represented through the NFS interface (the first group in the {{{#group}}} attribute which has a local UNIX group id mapping) is also in the {{{#setgid}}} attribute, then the setgid bit will be on in the NFS interface. For security reasons, a user can only add a group which they are a member of to the {{{#setgid}}} attribute.
 #setuid:: The user for which the UNIX "set user ID" bit should be turned on for this object as [[http://www.vestasys.org/doc/man/html/repository.8.html#Principal%20identification%20and%20authentication|global name]] (''username''@''realm''). If the owner represented through the NFS interface (the first user in the {{{#owner}}} attribute which has a local UNIX user id mapping) is also in the {{{#setuid}}} attribute, then the setuid bit will be on in the NFS interface. For security reasons, a user can only add their own global username to the {{{#setuid}}} attribute, not that of other users.
 symlink-to:: A [[http://www.vestasys.org/doc/man/html/vesta-intro.1.html#stub|stub]] or [[http://www.vestasys.org/doc/man/html/vesta-intro.1.html#ghost|ghost]] which has a {{{symlink-to}}} attribute will appear as a symbolic link through the repository's NFS interface. The attribute value is the link value, unless the attribute value is the special string "{{{$LAST}}}" in which case the link value is the highest integer-numbered object in the same directory that is not a ghost or a stub. This attribute is most often seen on the "{{{latest}}}" symbolic link in packages, where it has the special value "{{{$LAST}}}".
 type:: The repository provides primitive types like [[http://www.vestasys.org/doc/man/html/vesta-intro.1.html#appendable_directory|appendable directories]] and [[http://www.vestasys.org/doc/man/html/vesta-intro.1.html#immutable_directory|immutable directories]]. The [[http://www.vestasys.org/doc/man/html/repos-ui.1.html|repository tools]] manipulate higher-level objects like [[http://www.vestasys.org/doc/man/html/vesta-intro.1.html#package|packages]] built out of these primitive types. The {{{type}}} attribute is used to denote which of these higher-level constructs a particular directory in the repository represents. The values found in the {{{type}}} attribute are:
  * '''package''': Found on [[http://www.vestasys.org/doc/man/html/vesta-intro.1.html#package|packages]]. Set by [[http://www.vestasys.org/doc/man/html/vcreate.1.html|vcreate]] and [[http://www.vestasys.org/doc/man/html/vbranch.1.html|vbranch]] (as a branch is also a package). [[http://www.vestasys.org/doc/man/html/vcheckout.1.html|vcheckout]] will only operate on an appendable directory with {{{package}}} in it's {{{type}}} attribute.
  * '''branch''': Found on [[http://www.vestasys.org/doc/man/html/vesta-intro.1.html#branch|branches]]. Set by [[http://www.vestasys.org/doc/man/html/vbranch.1.html|vbranch]]. Note that a branch is also a package, so an appendable directory with {{{branch}}} in it's {{{type}}} attribute will also have {{{package}}} in it's {{{type}}} attribute.
  * '''session''': Found on [[http://www.vestasys.org/doc/man/html/vesta-intro.1.html#session|session directories]]. Set by [[http://www.vestasys.org/doc/man/html/vcheckout.1.html|vcheckout]]. [[http://www.vestasys.org/doc/man/html/vadvance.1.html|vadvance]] places snapshots into directories which have {{{session}}} in their {{{type}}} attribute.

This page describes attributes used by the repository server and repository tools. (It doesn't yet describe all of them fully, but that's the plan.)

Of course users and new client applications can set other attributes with vattrib or the repository's VestaSource API. This page is meant to descibe those attributes used by the core Vesta tools.

Note that attributes which start with a pound sign (#) are considered access control attributes and are treated differently in some ways (e.g. during replication).

checkin-by

The user who performed a checkin as a global name (username@realm). Set by vcheckin. Found on checked-in versions and session directories.

checkin-time

A string representation of the time that a checkin was performed. The exact format of this string is controlled by the [UserInterface]TimeFormat configuration setting, which is used with stftime(3). Set by vcheckin. Found on checked-in versions and session directories.

checkout-by

The user who performed a checkout as a global name (username@realm). Set by vcheckout. Found on version reservation stubs, working directories, session directories, and checked-in versions. Set by vcheckout. Found on

checkout-from

A repository server specification (host:port) pointing to the remote master repository where an object was originally created. Used when a checkout is performed at a repository with a non-master replica. Set by vcheckout. Found on version reservation stubs and session directories. Read from the reservation stub by vcheckin to replicate a new version back to the rmeote master repository.

checkout-time

A string representation of the time that a checkout was performed. The exact format of this string is controlled by the [UserInterface]TimeFormat configuration setting, which is used with stftime(3). Set by vcheckout. Found on version reservation stubs, working directories, session directories, and checked-in versions.

checkout-to

A repository server specification (host:port) pointing to the local repository of a checkout (i.e. where the working directory is, where snapshots are taken with vadvance, and where the new version will be checked in). Used when a checkout is performed at a repository with a non-master replica. Set by vcheckout. Found on version reservation stubs and session directories. Read from the reservation stub by vwhohas to display which repository a checkout is local to.

content

The full path to the immutable version which this version was filled in from. Set by vcheckin. Found on versions. Usually this refers to a snapshot taken with vadvance, but vcheckin's -c option can be used to specify the content explicitly.

created-by

The user who created a package or branch as a global name (username@realm). Set by vcreate and vbranch. Found on packages and branches.

creation-time

A string representation of the time that a package or branch was created. The exact format of this string is controlled by the [UserInterface]TimeFormat configuration setting, which is used with stftime(3). Set by vcreate and vbranch. Found on packages and branches.

#formerly

When an object in an appendable directory is deleted through the repository's NFS iterface, it gets replaced with a ghost. When certain objects are deleted in this way, the repository records some of the information which would otherwise be lost in a #formerly attribute on the ghost. Specifically:

  • A deleted master appendable directory will have a list of the names it containes recorded in the #formerly attribute on the ghost

  • Any other non-stub object (such as an immutable directory) will have a its fingerprint (a 128-bit number which uniquely identifies the object) recorded in the #formerly attribute on the ghost

This informaiton is not directly used by any of the repository tools.
#group

The group of this object as a global name (^groupname@realm). Also defines the group of any files and subdirectories contained by the object with the #group attribute. The group is inherited downward until another #group attribute is found. Set by the repository's NFS interface (e.g. by using chgrp(1)). Can have multiple values, in which case the group permissions apply to members of all the listed groups. (One must use vattrib to give an object multiple groups.) The UNIX group presented through NFS is the first group found which has a UNIX group ID mapping. If no group with a local group ID mapping is found, the group id given by the [Repository]vforeign_gid is used instead.

#master-grant

This attribute is used by the repository during the mastership transfer protocol. There's usually no reason to examine or manipulate it.

master-repository

A list of repositories (hostname:port) to consult when looking for the master copy of an object. Set automatically by the repository when creating new objects or transaferring mastership between repositories. (This attribute is considered to be a hint and is not authoritative or even neccessarily correct.)

#master-request

This attribute is used by the repository during the mastership transfer protocol. There's usually no reason to examine or manipulate it.

#mastership-from

Lists the addresses of repositories (hostname:port) we're willing to accept a mastership transfer from. In order to determine whther a particular mastership transfer is allowed, the destination repository searches upward from the path to be transferred for the closest enclosing directory with a #mastership-from attribute. The current master repository's address must be listed in that attribute or permission for the mastership transfer will be denied.

#mastership-to

Lists the addresses of repositories (hostname:port) to which we're willing to transfer mastership. In order to determine whther a particular mastership transfer is allowed, the current master repository searches upward from the path to be transferred for the closest enclosing directory with a #mastership-to attribute. The address of the repository requesting to be given mastership must be listed in that attribute or permission for the mastership transfer will be denied.

message

A descriptive message about an object. Set by vcreate on packages, vbranch on branches, vcheckout on reservation stubs and session directories, and vcheckin on new versions.

#mode

The user, group, and world permissions for this object as UNIX-style mode bits in octal. Also defines the permissions of any files and subdirectories contained by the object with the #mode attribute. The permissions are inherited downward until another #mode attribute is found. Set by the repository's NFS interface (e.g. by using chmod(1)). The interpretation of the bits in #mode is described in greater detail on the repository man page.

new-version

describe new-version here

next-branches

describe next-branches here

next-packages

describe next-packages here

next-sessions

describe next-sessions here

next-versions

describe next-versions here

old-version

describe old-version here

#owner

The owner of this object as a global name (username@realm). Also defines the owner of any files and subdirectories contained by the object with the #owner attribute. The owner is inherited downward until another #owner attribute is found. Set by the repository's NFS interface (e.g. by using chown(1)). Can have multiple values, in which case the owner permissions apply to all the listed users. (One must use vattrib to give an object multiple owners.) The UNIX owner presented through NFS is the first owner found which has a UNIX user ID mapping. If no owner with a local user ID mapping is found, the user id given by the [Repository]vforeign_uid is used instead.

#replicate-from

Lists the addresses of repositories (hostname:port) to be trusted as replication sources. This can be placed on /vesta or subdirectories of it. In order to determine whther a particular replication is allowed, the repository searches upward from the path to be replicated for the closest enclosing directory with a #replicate-from attribute. The source repository's address must be listed in that attribute or permission for the replication will be denied.

session-dir

describe session-dir here

session-ver-arc

describe session-ver-arc here

#setgid

The group for which the UNIX "set group ID" bit should be turned on for this object as global name (^groupname@realm). If the group represented through the NFS interface (the first group in the #group attribute which has a local UNIX group id mapping) is also in the #setgid attribute, then the setgid bit will be on in the NFS interface. For security reasons, a user can only add a group which they are a member of to the #setgid attribute.

#setuid

The user for which the UNIX "set user ID" bit should be turned on for this object as global name (username@realm). If the owner represented through the NFS interface (the first user in the #owner attribute which has a local UNIX user id mapping) is also in the #setuid attribute, then the setuid bit will be on in the NFS interface. For security reasons, a user can only add their own global username to the #setuid attribute, not that of other users.

symlink-to

A stub or ghost which has a symlink-to attribute will appear as a symbolic link through the repository's NFS interface. The attribute value is the link value, unless the attribute value is the special string "$LAST" in which case the link value is the highest integer-numbered object in the same directory that is not a ghost or a stub. This attribute is most often seen on the "latest" symbolic link in packages, where it has the special value "$LAST".

type

The repository provides primitive types like appendable directories and immutable directories. The repository tools manipulate higher-level objects like packages built out of these primitive types. The type attribute is used to denote which of these higher-level constructs a particular directory in the repository represents. The values found in the type attribute are:

  • package: Found on packages. Set by vcreate and vbranch (as a branch is also a package). vcheckout will only operate on an appendable directory with package in it's type attribute.

  • branch: Found on branches. Set by vbranch. Note that a branch is also a package, so an appendable directory with branch in it's type attribute will also have package in it's type attribute.

  • session: Found on session directories. Set by vcheckout. vadvance places snapshots into directories which have session in their type attribute.

  • checkout: Found on the directory used to hold session directories named "checkout" found within packages.

work-dir

describe work-dir here