Revision storage question

John Arbash Meinel john at arbash-meinel.com
Thu Feb 8 15:02:00 GMT 2007


Angela wrote:
> On 2/8/07, John Arbash Meinel <john at arbash-meinel.com> wrote:
...

> 
> 
> Thanks! For now that's what I've done, but with trees; that computer is
> used
> as actual file storage as well, so trees worked fine, I think. Right now I
> have:
> 
> Documentation/
> Documentation/.bzr/
> Documentation/Project1
> Documentation/Project2
> Documentation/Project3
> 
> Source/
> Source/Project1/
> Source/Project1/.bzr/
> Source/Project1/live
> Source/Project1/stable
> Source/Project1/devt
> Source/Project2/
> Source/Project2/.bzr/
> Source/Project2/live
> Source/Project2/stable
> Source/Project2/devt
> 
> And so on. :) I think this works good for me. I toyed with the idea of
> having the whole root of the drive as a shared repository and just define
> branches under it, but then I do have a few directories that I don't want
> versioned (Installers, Images, personal stuff, etc) and wasn't sure what
> impact having those non-versioned directories inside might have on the
> shared repository. Additionally, I had already started versioning the
> Source
> folder, with the shared repository on a per-project basis, and wasn't sure
> how having a shared repository within another shared repository work (I'm
> thinking it wouldn't). Or, how to move history of a repository into a
> shared
> repository.

It works fine, things underneath the nested directory are just tracked
by the closest one. It may cause confusion as users, but bzr handles it
without problem. What *could* cause problems is introducing an
intermediate shared-repository after you already have branches, because
that will block their view of the original repository. (I can explain
more if you want)

In general, I don't recommend having working trees in locations that are
meant to be shared between people, because not everyone has the same
access rights to update the working tree. (We work pretty hard to leave
you working tree rights alone, and try to keep your .bzr/* files
accessible).

Also, while it works just fine over a local, or '\\host\foo' path (which
is effectively local to bzr, same as an NFS mount). You will have some
problems if you start trying to access it over ssh, ftp, etc.

As far as unversioned files, bzr doesn't really care. Again it is
something that users might get confused about (is this versioned or not).

And I always advocate versioning *everything* (well, almost everything :)

> 
> For something like this, it does seem that 'bzr checkout --lightweight'
>> may be your best method. This is very much 'SVN' mode, since you don't
>> have any history stored locally. (It does mean that you can't commit
>> while offline, but that doesn't sound important in your situation).
> 
> 
> No, it's not that critical, at least for the documentation part; I'm
> planning to do lightweight checkouts for documentation, and then
> heavyweight
> checkouts for source/coding/programming. :) And yes, things have been split
> up into smaller, more manageable chunks; I think the biggest at the moment
> is 200MB.
> 
> I would definitely recommend using 'bzr+ssh://' if you can install bzr
>> on your server, as it is already quite a bit faster than sftp, and with
>> what has been going on on the 'hpss' branch, it should continue to
>> become much better.
> 
> 
> I've been reading into the bit of info on the bazaar server yesterday, but
> haven't gotten anything conclusive yet about if I'll keep using bzr the way
> I'm using it now, or to use the smart server. Right now, to do a
> checkout on
> my laptop, I do:
> 
> bzr checkout \\Server\source\project1\devt
> 
> (Actually, I'm making a batch file for the less volatile documentation
> repositories, but as of the moment that's the sort of command I'm using for
> the batch file to retrieve/etc checkouts.)
> 
> Would using the smart server be a better option? I can always install it as
> a service on the server computer if needed.

"local" access is fine. It just depends how it will scale up. I thought
you were using 'sftp' rather than 'bzr+ssh'.

The difference really comes in if you wanted to start accessing these
files from over the internet (rather than over the local network).
Because there you wouldn't really want to have an open Windows share.
And in those circumstances I would recommend not having working trees,
and using bzr+ssh over sftp.

> 
> (PS. The "server computer" I'm referring to is really basically an ordinary
> desktop computer, not an actual server. It has Apache 2.2 plus PHP and
> MySQL
> all that, but it's really for development/storage/everything else
> purposes.)
> 
> Thanks again, you're great help. :D
> 
> Angela

Same as my server. You don't have to have the big iron to have a server.

John
=:->



More information about the bazaar mailing list