Bazaar-NG Use Cases ******************* .. contents:: Review changes ============== Look at somebody else's tree or email submissions. Looking at the patch alone may not be enough; we might need to apply it to a tree, build it and see if we like it. Changes on branches =================== Clearcase allows you to put all new development onto branches that are later merged back. Can we detect which development branches have unmerged changes? Can we dispose of those branches? unmerge ======= Get rid of any changes that have been merged in but not yet committed. Shouldn't this just be ``bzr revert``? cross damage problem with PQM ============================= Lock undo some uncommitted changes ============================= If you've made some changes and don't want them:: baz undo foo.c This stores them as a changeset in a directory that you can move around. You can set a name for it:: baz undo --name blargh-refactor foo.c bar.c You can get it back:: baz redo foo.c move some in-progress changes onto a local branch ================================================= This is useful if we decide some changes on a bound branch should be done on a separate branch; in particular people will want to do this if they want to work in only one subdirectory of a complex config. Possibly this should be the default with no arguments for ``bzr branch``. Or possibly there should be a separate ``bzr unbind``. ignore some files ================= I'm working on a Python project, which leaves bytecode files in the working directory:: baz ignore \*.pyc baz ignore \*.pyo or:: baz ignore '*.py[co]' OK, there is some danger here that people always forget to quote globs on the command line but maybe this will be enough. Maybe take only one at a time so that we can catch unquoted globs like this:: baz ignore *.pyc # wrong! If they do this, they see all '* added foo.pyc to .arch-inventory'; then they can do this to get back:: baz undo .arch-inventory This is potentially much more pleasant than Subversion. Wrong commit message ==================== I accidentally commit some files with the wrong message and want to change them:: % bzr status M foo.c % bzr commit -s 'fix foo' M foo.c [oops!] % bzr uncommit % bzr status M foo.c % bzr commit -s 'fix foo and bar' This fix should be done as soon as possible, before anything else depends on the change. Monday morning ============== Come in Monday morning; can't remember what you were doing. * log; look at what was committed * diff against upstream, or recent revisions * what else?