When using Git repository, then workflow is as follows:
* branches are created to help
* developer is working in a feature branch (only files, that are changed are related to developed feature)
# the `arc diff` command is:
** taking all changes files
** creating patch from them
** creating new (or updating existing) Differential revision based on that patch
# the `arc patch` command is:
** creating new `arcpatch-Dxxx` branch
** applying that patch to that branch
# the `arc land` command is:
** squashing that branch
** merging to `master`
** pushing to `origin` repo
When using SVN repository the workflow is different:
* no branches
* changes from multiple features are present at same time in working copy
I propose to use changelists for SVN workflow like so:
# the `arc diff` command is:
** taking changed files from given "SVN changelist" (can be optional `--changelist` argument to `arc diff` command, that works with SVN only)
** creating patch from them
** creating new (or updating existing) Differential revision based on that patch
# the `arc patch` command is:
** creating new `arcpatch-Dxxx` SVN changelist
** applying that patch, so that all changes gets automatically assigned to that changelist
# the `arc land` command is:
** doing svn commit (on all changed files) or on files within changelist specified via `--changelist` (optional) argument