Basic questions

John Arbash Meinel john at arbash-meinel.com
Wed Jan 23 14:08:12 GMT 2008


Michael Hipp wrote:
> Hello, I'm considering using Bazaar. A few simple questions:
> 
> 1. Does Bazaar preserve file timestamps? (I'm speaking of 'mtime').

No, and it doesn't preserve them on purpose. Timestamps between machines 
are always tricky. (How many times with CVS have I gotten into a state 
where it wanted to commit all my files over and over because the server 
  and my local machine had time skew?)

Further it is possible to merge someone else's code (or bzr update) and 
end up with clock times way in the past. So the build products appear 
*newer* than the recently-but-marked-still-old-changed file.

As a quick example:

USER A: checkout trunk
USER B: checkout trunk
USER A: commit
USER B: build
USER B: update
USER B: build

Notice that the first "build" happens after the commit, which means that 
the update would set the timestamps to earlier than the build products.

Is there a specific need that you have for preserving timestamps? There 
are things you could do with hooks based on update/commit/etc.

> 
> 2. Has anyone used it with PSFTP or PLINK (Putty components) from Windows?
> 

As mentioned in the other thread, plink works, but we also can talk 
directly to pageant. There are problems with plink not being able to 
take control of the terminal.

I've also had very good success using win32 native bzr with cygwin's 
openssh. (I use native bzr because cygwin python is about 50% slower.)

> 3. How well does it handle and differentiate binary files (vs. textual)?
> 

At the moment it treats everything as "binary" which happens to have 
newlines. There is some code so that "diff" won't spew binary data to 
your screen. Generally, though, the storage preserves exactly whatever 
files you have.

> 4. Is there somewhere a tutorial on setting up a repository on my Ubuntu 
> Dapper box in similar fashion to 'svnserve'?
> 
> Thanks, hope this isn't all too old hat.
> 
> Michael Hipp
> Heber Springs, AR, USA


I'm not sure what you are trying to set up. There is:

bzr serve --directory=/path/to/repository

Which will open up a "bzr://" service running on port 4155 (IANA 
registered port for 'bzr://').

Alternatively, you can just use:

bzr checkout bzr+ssh://host/absolute/path

Which uses ssh and then spawns bzr on the other side (similar to svn+ssh).

Further than that, we can be used over plain http, so you can just 
export the directory. It may be a little bit slower than serving over 
the bzr protocol, but with the new --pack-0.92 format it does quite well 
for <= medium sized projects.

It is also possible to serve the "bzr" smart protocol over http 
(bzr+http). It is a little bit tricky to set up. We had a couple bugs 
that prevented advanced configuration, but Andrew has sorted all of them 
out for bzr 1.2.

To look for details you can look at:

   doc/en/user-guide/http_smart_server.txt

Or online at:

   http://doc.bazaar-vcs.org/bzr.dev/en/user-guide/http_smart_server.html

John
=:->



More information about the bazaar mailing list