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