svn-changelist
Organize working copy changes into named groups
TLDR
Add files to a changelist, creating the changelist if it does not exist
Remove files from a changelist
Remove the whole changelist at once
Add the contents of a space-separated list of directories to a changelist
Commit a changelist
SYNOPSIS
svn changelist [--remove] [--depth ARG] [--targets ARG] [--xml] [--quiet] [--changelist ARG] PATH...
PARAMETERS
--remove
Disassociates the specified PATHs from any changelist they are currently associated with.
--depth ARG
Sets the depth of the operation for directory targets. Possible values include empty, files, immediates, and infinity.
--targets ARG
Reads target paths from the specified file, one path per line, instead of from the command line.
--xml
Produces output in XML format, suitable for programmatic parsing.
--quiet
Suppresses normal output, showing only errors.
--changelist ARG
Specifies the name of the changelist to associate files with. This option is required when adding files to a changelist.
PATH...
One or more paths (files or directories) in the working copy to apply the changelist operation to.
DESCRIPTION
The svn-changelist command refers to the functionality provided by the svn changelist subcommand within the Subversion (SVN) version control system. It is used to logically group files and directories in a working copy into named changelists. This allows users to organize related modifications for different tasks or features, improving the clarity and granularity of subsequent operations like commits.
Changelists are local to the working copy and do not affect the repository until the files within them are committed. Files can only belong to one changelist at a time, providing a flexible way to manage complex local changes.
CAVEATS
Changelists are a local-only feature of Subversion working copies and are not versioned or transmitted to the repository. They serve solely to organize local changes before committing. A file can belong to only one changelist at any given time.
WORKFLOW INTEGRATION
Changelists are primarily used to filter the scope of other SVN operations. For instance, the svn commit command can be used with the --changelist option to commit only those files associated with a specific changelist, e.g., svn commit --changelist 'my-feature-changes'. Similarly, svn status can display or filter by changelist associations, providing a clear overview of grouped modifications.
HISTORY
The changelist feature was introduced in Subversion 1.5.0, released in 2008. It was a significant addition designed to help users manage and organize their local working copy changes more effectively, especially for complex development workflows or when dealing with large sets of modifications. Before its introduction, users had to manually keep track of related changes, which could lead to errors or less granular commits. The design decision to keep changelists local to the working copy prioritized flexibility and ease of use over repository-level tracking.