* Ondrej Certik [Mon, 02 Mar 2009 11:07:25 -0500]: > >> I have never used stacked branches, but are you sure you can only > >> branch the repository data related to a subset of the working tree > >> only ? My understanding is that bzr stacked branches are useful to > >> avoid downloading the whole history, but that you still need to get > >> the whole project. I think it would be very difficult to support the > >> usual features of DVCS without it ?
> > If you don't want the project history, then you can use lightweight > > checkouts, which are essentially equivalent to SVN checkouts (you get a > > local working copy, but no local branch or repository). > Ah, so you basically only get the local working copy, but *no* bzr > repository, right? Well, with git, you can get this over the web > interface, so we may write a simple (Python:) script to download this > for you from the commandline. Maybe someone did this already. No, that interpretation is not correct. I'm going to explain the three involved concepts, in hopes that it will be useful for this discussion, or for future instances of this discussion. I'll (concisely) explain Bazaar's lightweight checkouts, Bazaar's stacked branches, and what Git has to offer in this area. 1. Lightweight checkouts ======================== A Bazaar lightweight checkout is conceptually the same as a SVN checkout: you get a working copy with the latest version of the project, you can use `log` and `diff` to examine history (over the network), you can use `diff` and `status` to see your changes, and you can use `commit`, but comitting commits directly to the remote repo, rather than locally. You can also create a lightweight checkout of a read-only location (most likely http://), the same as you can create a read-only SVN checkout (most likely svn://). Lightweight checkouts are useful for people who don't want to download the whole history, *and* do not want/need to make commits offline. 2. Stacked branches =================== A stacked branch in Bazaar is a mechanism to create a full-fledged working copy (meaning, a copy where you can perform all Bazaar operations, including offline commits), but without the need to download all history. The difference with a lightweight checkout is that the lightweight checkout keeps *no* local state, and always acts directly in the remote location (like SVN). A stacked branch is a regular branch, and can keep local commits; it just know to fetch data from the network *on demand* (I have no idea if the fetched data is cached or not, but my guess would be that it is not). Stacked branches are useful for people who want to use Bazaar as a DVCS, but who prefer not to download the whole history of the project, paying network trips as a price. I can confirm that stacked branches *are not* about doing checkouts of parts of a project. That's called "partial checkout", and it's a completely different beast altogether. 3. Git ====== Git has shallow clones, created with the --depth option for git-clone. This cut-offs the history of the project past a certain point, but the result is lacking: mainly, you cannot push your changes back. (You can do local commits however, and you can create patches for this in the normal Git workflow.) As far as I know, Git doesn't have a mechanism to create full-fledged repositories with only part of the history, referencing other remote repositories for missing data. With my Git user hat on, this is clearly a technically inferiority of Git vs Bazaar. HTH, -- Adeodato Simó dato at net.com.org.es Debian Developer adeodato at debian.org In my opinion, the most fruitful and natural play of the mind is in conversation. I find it sweeter than any other action in life; and if I were forced to choose, I think I would rather lose my sight than my hearing and voice. -- Michel de Montaigne -- To UNSUBSCRIBE, email to debian-python-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org