Sofa

Help: changes
Login

Help: changes

The "changes" command:

Usage: fossil changes|status ?OPTIONS? ?PATHS ...?

Report the change status of files in the current check-out. If one or more PATHS are specified, only changes among the named files and directories are reported. Directories are searched recursively.

The status command is similar to the changes command, except it lacks several of the options supported by changes and it has its own header and footer information. The header information is a subset of that shown by the info command, and the footer shows if there are any forks. Change type classification is always enabled for the status command.

Each line of output is the name of a changed file, with paths shown according to the "relative-paths" setting, unless overridden by the --abs-paths or --rel-paths options.

By default, all changed files are selected for display. This behavior can be overridden by using one or more filter options (listed below), in which case only files with the specified change type(s) are shown. As a special case, the --no-merge option does not inhibit this default. This default shows exactly the set of changes that would be checked- in by the commit command.

If no filter options are used, or if the --merge option is used, the artifact hash of each merge contributor check-in version is displayed at the end of the report. The --no-merge option is useful to display the default set of changed files without the merge contributors.

If change type classification is enabled, each output line starts with a code describing the file's change type, e.g. EDITED or RENAMED. It is enabled by default unless exactly one change type is selected. For the purposes of determining the default, --changed counts as selecting one change type. The default can be overridden by the --classify or --no-classify options.

--edited and --updated produce disjoint sets. --updated shows a file only when it is identical to that of its merge contributor, and the change type classification is UPDATED_BY_MERGE or UPDATED_BY_INTEGRATE. If the file had to be merged with any other changes, it is considered to be merged or conflicted and therefore will be shown by --edited, not --updated, with types EDITED or CONFLICT. The --changed option can be used to display the union of --edited and --updated.

--differ is so named because it lists all the differences between the checked-out version and the check-out directory. In addition to the default changes (excluding --merge), it lists extra files which (if ignore-glob is set correctly) may be worth adding. Prior to doing a commit, it is good practice to check --differ to see not only which changes would be committed but also if any files should be added.

If both --merge and --no-merge are used, --no-merge has priority. The same is true of --classify and --no-classify.

The "fossil changes --extra" command is equivalent to "fossil extras".

General options:

--abs-paths
Display absolute pathnames
--rel-paths
Display pathnames relative to the current working directory
--hash
Verify file status using hashing rather than relying on file mtimes
--case-sensitive BOOL
Override case-sensitive setting
--dotfiles
Include unmanaged files beginning with a dot
--ignore <CSG>
Ignore unmanaged files matching CSG glob patterns

Options specific to the changes command:

--header
Identify the repository if report is non-empty
-v|--verbose
Say "(none)" if the change report is empty
--classify
Start each line with the file's change type
--no-classify
Do not print file change types

Filter options:

--edited
Display edited, merged, and conflicted files
--updated
Display files updated by merge/integrate
--changed
Combination of the above two options
--missing
Display missing files
--added
Display added files
--deleted
Display deleted files
--renamed
Display renamed files
--conflict
Display files having merge conflicts
--meta
Display files with metadata changes
--unchanged
Display unchanged files
--all
Display all managed files, i.e. all of the above
--extra
Display unmanaged files
--differ
Display modified and extra files
--merge
Display merge contributors
--no-merge
Do not display merge contributors

See also: extras, ls