Большая тройка распределенного контроля версий (Git, Bazaar и Mercurial) каждый рассматривает ветвление довольно по-разному. Например, в Bazaar ветки представляют собой отдельные репозитории (фактически, расходящиеся копии родительского репо); в вашей файловой системе разные ветки живут в разных каталогах. В Git, с другой стороны, вы можете иметь несколько ветвей, существующих в одном и том же репо (и, следовательно, в том же каталоге в вашей файловой системе). Mercurial поддерживает оба поведения, последний с назвал ветки.
Каковы плюсы и минусы, связанные с этими разными ветвящимися моделями? На мой взгляд, подход Bazaar одной ветки, один репо делает больнее больнее, чем подход Git (например, чтобы использовать ветку на базаре, я должен сначала создать ветвь, затем cd из моей текущей рабочей копии, затем проверьте новую ветку, как я бы в SVN).