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