views:

461

answers:

3

I want to use Bazaar on Windows XP for web-development and related tasks. Most of the files are edited locally and then transferred via FTP to the server. Just now the repository sits on my local workstation. Later on it should be shared locally with some co-workers. Perhaps we will use a local Linux server as a centralized repository, but this structure is not decided for now. But first I need to understand the impacts of the different repository setups, which I do not at all.

Using Bazaar-Explorer on Windows XP I’ve created a ‘shared tree repository’ from the option list of the init-dialogue in some location dev-filter/. Bazaar Explorer tells me:

Created repository with treeless branches at F:/bzr.local/dev-filter 
Created branch at F:/bzr.local/dev-filter/trunk
Created working tree at F:/bzr.local/dev-filter/work

OK so far. Now I move a bunch of files into the work directory and add and commit them as Rev 1 ‘Start Revision’. Then I work on some of these files and commit them again as Rev 2. Here my confusion starts. Shouldn’t both revisions go into the trunk? The trunk is still empty, beside the .bzr directory which only holds some management information. If I delete my working directory, which I have tried during these first experiments, everything is gone. There’s obviously no hidden storage of those files.

OK. Perhaps I need to push it into the trunk? This does not work either. Entering the work/ directory and initializing the ‘push’ to the trunk, Bazaar-Explorer tells me

No new revisions to push.

So what? This looks like a severe conceptual misunderstanding about what should happen on my side.

Edit, 2010-02-03: Some conclusions

What I learned meanwhile is this:

  • I think I should switch to the command line until I really understand what’s going on, at least for creating the repositories and branches. Bazaar Explorer introduces a new level of abstraction which I only can handle if I understand the level beneath

  • One of the secrets of working with Bazaar at least for me is to understand those .bzr directories, their particular properties and states when created with ‘bzr init’, ‘bzr init-repository’, ‘bzr branch’ etc. in all their variants and how they are plumped together.

  • While there’s a whole chapter of ‘Organizing your workspace’ in the Bazaar User Guide, it’s more or less workflow oriented. The manual contains a lot of directory structures for the given examples. What I would prefer beside this and have not (or only rudimentary) found so far is some graphical representation of those ‘Lego like’ .bzr building blocks which create the linking of all the parts. So I started to invent some simple notation while working through the examples and looking into the .bzr directories to document what information is stored there, where does it come from, how and to what is it linked, is it complete or shared, etc.

Erich Schreiber

+1  A: 

Your changes are still saved in the F:/bzr.local/dev-filter/trunk/.bzr, and have indeed been committed there. You don't see those changes reflected in the file system because Bazaar has created trunk as a treeless branch, with `` as a lightweight checkout. See checkouts in the Bazaar User Reference.

If you open F:/bzr.local/dev-filter/trunk in Bazaar Explorer, you should see your revisions. If you create a new branch with a working tree or checkout based on trunk, Bazaar will create the files with your changes for you.

Adam Glauser
+1  A: 

Created repository with treeless branches at F:/bzr.local/dev-filter

This part of the output looks suspicious to me. Are you sure you chose 'Shared repository' and not 'Shared repository with treeless branches' from the init dialog?

Treeless Branches are branches without the working tree, if you indeed created a treeless branch for trunk then it makes sense that there are no files there.

Trent
Thank you for pointing this out. Indeed I selected 'Shared tree' in Bazaar Explorer. The tooltip text for this option reads "Create a shared repository with treeless branches at location. Then create a trunk branch and separate working tree (checkout) inside that repository".
esc1729
A: 

typically it goes like this.

bzr init-repo --no-trees F:/bzr.local/dev-filter cd F:/bzr.local/dev-filter bzr init trunk bzr branch trunk work

---all above will not create any tree

Now in new directory say F:\temp cd F:\temp bzr checkout F:/bzr.local/dev-filter/work bzr add bzr commit

---back to F:/bzr.local/dev-filter/work cd F:/bzr.local/dev-filter/work bzr push F:/bzr.local/dev-filter/trunk

scienty