mkvob
Creates and registers a versioned object base (VOB)
Applicability
Product |
Command type |
---|---|
ClearCase® |
cleartool subcommand |
Platform |
---|
UNIX |
Linux |
Windows |
Synopsis
- ClearCase on
UNIX and Linux:
- mkvob –tag vob-tag [ –ucm/project ]
- [ –c/omment
comment | –cfi/le
comment-file-pname | –cq/uery
| –cqe/ach | –nc/omment ]
[ –tco/mment tag-comment ] [ –reg/ion network-region ]
[ –opt/ions mount-options ] [ –nca/exported ]
[ –pub/lic ] [ –pas/sword tag-registry-password ] [ –nrem/ote_admin ]
[ -flevel feature-level ]
{ [ –hos/t hostname –hpa/th host-storage-pname
–gpa/th global-storage-pname ] vob-storage-pname
| -stgloc { vob-stgloc-name | –auto } }
- ClearCase on
Windows:
- mkvob –tag vob-tag [ –ucm/project ]
- [ –c/omment
comment | –cfi/le
comment-file-pname | –cq/uery
| –cqe/ach | –nc/omment ]
[ –tco/mment tag-comment ] [ –reg/ion network-region ]
[ –opt/ions mount-options ] [ –pub/lic ]
[ –pas/sword tag-registry-password ] [ –nrem/ote_admin ]
[ –flevel feature-level ]
{ [ –hos/t hostname –hpa/th host-storage-pname
–gpa/th global-storage-pname ] vob-storage-pname
| -stgloc { vob-stgloc-name | –auto } }
Description
The mkvob command creates a new versioned object base, or VOB, as follows:
- Creates a VOB storage directory at a specified path or in a VOB server storage location created with mkstgloc.
- Creates a VOB tag with which the VOB is accessed by users.
- Places entries in the network's VOB registries; use the lsvob command to list registered VOBs.
- Starts a VOB server process on the named host.
A VOB storage directory is the root of a directory tree whose principal contents are a VOB database and a set of storage pools. See the mkstgloc reference page for details.
VOB directory elements
mkvob creates the following directory elements in a VOB:
- VOB root directory. A mkdir command is implicitly executed to create a directory element (the VOB root directory) in the new VOB. Activating a VOB makes its root directory accessible at the path name specified by the VOB tag.
- lost+found directory. In ClearCase, mkvob also creates a special directory element, lost+found, as a subdirectory of the VOB root directory. In this directory are placed elements that are no longer entered in any versioned directory.
Default storage pools
Each VOB storage directory is created with default storage pool subdirectories:
sdft |
Default source storage pool |
cdft |
Default cleartext storage pool |
ddft |
Default derived object storage pool (ClearCase dynamic views) |
Access permissions
In considering access permissions, it is important to distinguish these two top-level directories:
- VOB storage directory. The standard directory created by this command, which is at the top level of a server storage location for VOBs.
- VOB root directory. The ClearCase directory element accessed at the VOB tag.
ClearCase implements its own access scheme that goes beyond the standard operating system facilities. These settings control access to many operations involving the VOB; they can be changed with the protectvob command.
See also the protect reference page (this command affects access to individual elements and shared derived objects) and the DevOps Code ClearCase Administrator's Guide.
UNIX and Linux VOBs
When you create a VOB on a UNIX or Linux system, you become its VOB owner and your groups become its group list. These settings control access to many operations involving the VOB; they can be changed with the protectvob command.
Your operating system-level UID and GID are assigned to the VOB storage and the default storage pools. The mode of the VOB storage directory is set according to your current umask setting. This affects which users, and which views, can access the VOB. The modes of storage pool directories are set to 755, regardless of your current umask setting.
The mode of the VOB root directory, by contrast, is derived from your current umask setting. The mode can changed subsequently with the protect command. Note that the w permission on this directory (as on any directory element) affects only the creation of view-private objects; changes to the VOB itself are controlled by ClearCase permissions, not those at the operating system level.
Windows VOBS
When you create a VOB on a Windows system, you become its VOB owner and your primary group becomes the VOB's assigned group. These settings control access to many operations involving the VOB; they can be changed with the protectvob command.
Your operating system-level user name and the name of the ClearCase administrators group are assigned to the VOB storage and the default storage pools. All users can read and search the storage pools, but only the VOB owner and ClearCase server processes can modify them.
Interop text mode support
By default, VOBs are created with interop text mode support enabled. In this mode, the VOB database keeps track of the number of lines in all versions of each text file. This mode is required to support access to the VOB by interop text mode views (see the mkview reference page). To change the state of a VOB's interop text mode support, use the msdostext_mode utility. For more information, see the DevOps Code ClearCase Administrator's Guide.
ClearCase: Regional tags
mkvob creates exactly one VOB tag for the newly created VOB. This tag applies to the local host's network region by default. To make additional VOB tags for other regions, use the mktag command. In general, the VOB tags for a given VOB should all be public or all private.
ClearCase dynamic views: Public and private VOBs
Some VOBs are to be shared, and others are to be used primarily by their creators. Accordingly, there are two kinds of VOB tags: public and private.
UNIX and Linux: Public VOB tags
A public VOB tag specifies a location at which any dynamic-view user can mount the VOB. Furthermore, after a public VOB is mounted on a host, any user on that host can access it (subject to the standard access permissions).
Typically, all public VOBs are mounted at startup time with the command cleartool mount –all. (To create a public VOB that is not mounted automatically, specify –options noauto in the mkvob command.)
When creating a public VOB tag with mkvob or mktag, you must supply the network's VOB tag password; if you do not use the –password option, you are prompted to provide one.
You need not create a public VOB's mount-over directory; the cleartool mount command creates it, if necessary.
UNIX and Linux: Private VOB tags
A private VOB tag specifies a mount point at which only the VOB's owner (usually, its creator) can mount the VOB using cleartool. For example:
cleartool mount /vobs/myPrivateVob
root can use the cleartool mount vob-tag command to bypass the "owner only" mount restriction. The command cleartool mount –all does not mount private VOBs.
After a private VOB is mounted, any user can access it (subject to the standard access permissions). You must explicitly create the mount-over directory for a private VOB; the cleartool mount command does not create it automatically.
Windows: Public VOB tags
A public VOB can be activated with the following command:
cmd-context mount –all
Usually, the system administrator automates this command for users in either of two ways:
- By adding it to the startup script for ClearCase users.
- By supplying it in a batch file for use in each user's Startup folder.
This technique is particularly useful because, in its role as a network provider, the MVFS deactivates all VOBs and views on the local host at user logon time. That is, each time a user logs on, the dynamic-views drive (by default, drive M) is empty until VOBs and views are reactivated.
For information on persistent VOB mounting, see the mount reference page.
When creating a public VOB tag with mkvob or mktag, you must supply the network's VOB tag password; if you do not use the –password option, you are prompted to type one. For information on how to create or change the VOB registry password, see rgy_passwd.
Windows: Private VOB tags
Any user can mount any VOB, public or private. The private designation means only that a VOB must be mounted separately, by name.
UNIX, Linux, and Windows: Private-to-public VOB conversion
To convert a private VOB to a public VOB, use a command like this:
cmd-context mktag -vob -tag \vob3.p^
-replace -public \\saturn\users\vbstore\private3.vbs
This replaces the VOB's private VOB tag with a public one. mktag prompts you to enter the VOB tag password.
ClearCase snapshot views: Accessing public and private VOBs
For an explanation of public and private VOBs, see ClearCase dynamic views: Activating the VOB.
- Snapshot views make no distinction between public and private VOBs: you can access private VOBs from a snapshot view regardless of who owns them.
ClearCase dynamic views: Activating the VOB
A VOB cannot be used for development work in a dynamic view until it is activated with the cleartool mount command. This causes the VOB's storage directory to be mounted on the host at the VOB tag location, as a file system of type MVFS. See the mount reference page for details.
ClearCase on UNIX and Linux: Marking a VOB for export
A VOB to be used by some view for NFS access must be marked for export. Each export VOB is assigned an export ID, which ensures that NFS-exported view/VOB combinations have stable NFS file handles across server reboots or shutdown and restart of ClearCase.
If the VOB is registered in multiple regions, the export marking must appear on all of that VOB's tags in all the regions in which it is registered. To mark a VOB for export, use the –ncaexported option. To mark an existing VOB for export, use mktag –replace –ncaexported.
The VOB export ID is stored in the mount options field in the VOB tag registry. If you use the –ncaexported option and specify additional mount options in the mktag or mkvob command, the mount options field includes an appropriate export ID mount option.
For information about exporting VOBs, see the export_mvfs reference page.
ClearCase: Location of the VOB database directory
The VOB database directory must be located on the VOB server host or on a supported network attached storage device that has been configured for VOB storage. For a discussion of network attached storage devices, see the DevOps Code ClearCase Administrator's Guide.
ClearCase: VOB storage directory on a network attached storage device
You may create a VOB with storage on a supported network attached storage (NAS) device. Use a server storage location for this purpose. See the mkstgloc reference page for information. To use mkvob to create a VOB that resides on a NAS device, you must specify the option set, –host –hpath –gpath. (NAS devices must be specially configured for use with ClearCase. See the DevOps Code ClearCase Administrator's Guide for details.)
Restrictions
To use the -nremote_admin option, you must be logged on the VOB server host as a privileged user.
Options and arguments
Specifying the VOB tag
- Default
- None.
- –tag vob-tag
-
ClearCase on UNIX or Linux. VOB
tags are names for VOBs that are entered in the registry. They are of multicomponent
(/vob/src) form for ClearCase. The VOB tag is where the VOB appears
under the view root.
ClearCase dynamic views on UNIX or Linux. A path name, typically multicomponent, that specifies the mount-over directory at which the VOB is mounted as a file system of type MVFS. The VOB tag is entered in the VOB tag registry. If you are creating a private VOB (no –public option), you must also create the mount-over directory on each host where you will mount the VOB. (The cleartool mount command creates mount-over directories for public VOBs.)
ClearCase. If your network has multiple regions from which the VOB is to be accessed, use mktag to create an additional VOB tag for each region.
ClearCase on Windows. VOB tags are names for VOBs of the form \dirname. The backslash is required. The VOB tag is entered in the registry and is where the VOB appears under the view root.
Specifying the kind of VOB
- Default
- A standard (that is, nonproject) VOB.
- –ucm/project
- Creates a UCM project VOB for storing UCM-related objects including activities, baselines, components, folders, projects, and streams. Typically, a single project VOB is shared by multiple source VOBs; for example those that store versioned source code, documents, and so on.
Event records and comments
- Default
- Creates one or more event records, with commenting controlled by your .clearcase_profile file (default: –cqe). See the comments reference page. Comments can be edited with chevent.
- –c/omment comment | –cfi/le comment-file-pname |–cq/uery | –cqe/ach | –nc/omment
- Overrides the default with the option you specify. See the comments reference page.
- –tco/mment tag-comment
- Adds a comment to the VOB tag's entry in the vob_tag registry file. Use lsvob –long to display the tag comment.
Specifying a network region
- Default
- Creates the VOB tag in the local host's network region. (Use the hostinfo –long command to display the network region.) for a discussion of network regions, see the DevOps Code ClearCase Administrator's Guide.
- –reg/ion network-region
- Creates the VOB tag in the specified network region. An error
occurs if the region does not already exist. Important: The VOB tag created with mkvob must be for the network region to which the VOB host belongs. Thus, use this option only when you are logged on to a remote host that is in another region. Moreover, a VOB tag for the VOB's home region must always exist.
Specifying mount options
- Default
- Mounts each VOB using the –options field in its vob_tag registry file.
- –opt/ions mount-options
- UNIX and Linux—Options to be used in mounting the VOB. The following options are valid:
ro, rw, soft, hard,
intr, nointr, noac,
noauto, nodev, nodnlc,
nosuid, suid, retrans,
timeo, acdirmin, acdirmax,
acregmin, acregmax, actimeo. See the
appropriate operating system reference page (for example, mount(1M)) for
the meanings of these options. If the mount options list contains white space, enclose it in
quotes. By default, a VOB is mounted in nointr mode. This means that
operations on MVFS files (for example, open(2)) cannot be interrupted by
typing the INTR character (typically, CTRL+C). To enable keyboard interrupts of such
operations, use the intr mount option.
Windows—Specifies mount options to be invoked when the VOB is activated through this VOB tag. See mount for details. (You must be a member of the ClearCase administrators group to use this option.)
Marking the VOB for export
- Default
- The VOB is not marked for export.
- –nca/exported
- Assigns an export ID to the VOB. See ClearCase on UNIX and Linux: Marking a VOB for export.
Preventing privileged access by remote users
- Default
- Specified by the site property deny_remote_privileged_users (see the setsite reference page).
- -nrem/ote_admin
- Disables privileged access by remote users. When a VOB is created with this option, all privileged operations require the user to be logged on to the VOB server host with a privileged identity. Any request from a privileged user logged on to a remote host is treated as though it had been made by an ordinary user (it fails if a privileged identity is required). Use protectvob -remote_admin to enable privileged access by remote users to a VOB created with the -nremote_admin option.
This option is effective only when you are logged on the VOB server host as a privileged user.
Specifying the feature level
- Default
- The VOB is created at the feature level that corresponds to the installed version of the product. For information about all feature levels and their correspondences to product versions, see technote 73065.
- –flevel feature-level
- Specifies the feature level at which the VOB is to be created: an integer value of 5 or greater. This option enables you to create ACL-disabled VOBs in versions 8.0.1 and later releases: first create the VOB, specifying –flevel 7, then use the chflevel command to raise the feature level.
Public versus private VOB
- Default
- A private VOB.
- –pub/lic
- Creates a public VOB. See ClearCase dynamic views: Activating the VOB.
- –pas/sword tag-registry-password
- A password is required to create a public tag or to create a private
tag when you include suid as an argument to –options.
In these cases, if you do not include the VOB tag password, mkvob prompts for it. An error occurs if there is no match. Note that the VOB is created, but without a VOB tag. Use mktag to supply a public or private VOB tag.
Important: This is a potential security breach, because the password remains visible on the screen.
Specifying the VOB location and network accessibility
- Default
- None.
- –hos/t hostname –hpa/th host-storage-pname –gpa/th global-storage-pname
- For information on these options, see the mkstgloc reference
page.
To create a VOB that resides on a supported network attached storage (NAS) device, you must specify the option set, –host –hpath –gpath.
- vob-storage-pname
- The location at which a new VOB storage directory is to be created. (An error occurs if
something already exists at this path name.) You can create a VOB at any location where the
operating system allows you to create a subdirectory, with these restrictions:
- You cannot create a VOB under an existing VOB tag (VOB mount point).
- You cannot create a VOB within the view root directory.
- vob-storage-pname must not be a subdirectory of an existing VOB storage directory.
- vob-storage-pname must specify a location on a host where ClearCase has been installed or a location on a supported NAS device. The VOB database (located in subdirectory db of the VOB storage directory) must be located on the VOB server host or on a supported NAS device that has been configured for VOB storage.
UNIX and Linux—vob-storage-pname may be a full path name, relative path name, or simple subdirectory name. For related information, see the description of CCASE_GPATH_HINTS in the env_ccase reference page.
Windows—vob-storage-pname must be a UNC name.
- –stg/loc { vob-stgloc-name | –aut/o }
- Specifies a server storage location in which the VOB storage directory
is to be created. The server storage location must have been created
previously with mkstgloc. You can specify the name
of the VOB server storage location explicitly as vob-stgloc-name,
or specify –auto to direct mkvob to
select one.
If you specify –auto, a server storage location for the VOB is selected as follows:
- Server storage locations that have no global path (mkstgloc –ngpath) and that reside on remote hosts are disqualified.
- Server storage locations on heterogeneous hosts are disqualified.
- Local server storage locations are preferred over remote ones.
- Globally accessible server storage locations (mkstgloc –gpath) are preferred over those that are not (mkstgloc –ngpath).
- The server storage location with the most free space is selected.
Examples
The UNIX system and Linux examples in this section are written for use in csh. If you use another shell, you might need to use different quoting and escaping conventions.
The Windows examples that include wildcards or quoting are written for use in cleartool interactive mode. If you use cleartool single-command mode, you might need to change the wildcards and quoting to make your command interpreter process the command appropriately.
In cleartool single-command mode, cmd-context represents the UNIX system and Linux shells or Windows command interpreter prompt, followed by the cleartool command. In cleartool interactive mode, cmd-context represents the interactive cleartool prompt.
UNIX and Linux examples
- Create a private VOB storage directory, project3.vbs,
in the /usr/vobstore directory on local host venus,
and give it the VOB tag /vobs/project3. Then,
mount the VOB on the local host.
cmd-context mkvob -tag /vobs/project3 -c "main development sources" \
/usr/vobstore/project3.vbs
Created versioned object base.
Host-local path: venus:/usr/vobstore/project3.vbs
Global path: /net/venus/usr/vobstore/project3.vbs
VOB ownership:
owner anne
group dev
Additional groups:
group usr
group adm
% mkdir /vobs/project3 (create VOB mount point to match the VOB tag)
cmd-context mount /vobs/project3 (mount VOB as file system of type MVFS) - Create a public VOB, which will
be mounted at startup time (by all hosts in the current host's network
region), and mark it for export.
cmd-context mkvob -tag /vobs/src1 -public -password tagPword \
-ncaexported /vobstore/src1.vbs
Created versioned object base.
Host-local path: saturn:/vobstore/src1.vbs
Global path: /net/saturn/vobstore/src1.vbs
.
.
. - Create a private VOB in a different
region, explicitly specifying the registry information.
cmd-context mkvob –tag /vobs/doctools \
–c "storage for documentation tools" \
–region unix_dev –host neon –hpath /vobstg/doctools.vbs \
–gpath /net/neon/vobstg/doctools.vbs /vobstg/doctools.vbs
Created versioned object base.
Host-local path: neon:/vobstg/doctools.vbs
Global path: /net/neon/vobstg/doctools.vbs
.
.
. - Create a VOB at VOB server storage
location.
cmd-context mkvob -tag /vobbert -stgloc stgloc1
Comments for "/export/home/bert/stgloc1/vobbert.vbs":
test vob
.
Created versioned object base.
Host-local path: peroxide:/export/home/bert/stgloc1/vobbert.vbs
Global path: <no-gpath>
cleartool: Warning: This global path value precludes use of this
VOB by dynamic views from region "test_region".
.
.
.
Windows examples
- Create a private VOB storage directory, project3.vbs,
in the C:\users\vbstore directory on local host venus,
and give it the VOB tag \project3. Assume c:\users is
shared as \\venus\users. Then, mount the VOB
on the local host.
cmd-context mkvob -tag \project3 -c "main development sources" ^
\\venus\users\vbstore\project3.vbs
Created versioned object base.
Host: venus
Local path: C:\users\vbstore\project3.vbs
Global path: \\venus\users\vbstore\project3.vbs
VOB ownership:
owner anne
group dev
cmd-context mount \project3 (mount VOB as file system of type MVFS) - Create a public VOB, which will
be mounted at startup time (by all hosts in the current host's network
region).
cmd-context mkvob -tag \src1 -public ^
-password tagPword \\saturn\vbstore\src1.vbs
Created versioned object base.
Host: saturn
Local path: C:\vbstore\src1.vbs
Global path: \\saturn\vbstore\src1.vbs
.
.
.
See also
chflevel, chpool, lsvob, mkpool, mkstgloc, mount, protectvob, rgy_passwd, rmvob, uncheckout, umount, umask(1)