From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: "Stephen J. Turnbull" Newsgroups: gmane.emacs.devel Subject: Re: Locks on the Bzr repository Date: Sun, 22 Aug 2010 15:52:44 +0900 Message-ID: <87sk276sw3.fsf@uwakimon.sk.tsukuba.ac.jp> References: <4C6D56DB.7040703@swipnet.se> <4C6D8EC5.7040901@swipnet.se> <4C6E1F0A.7070506@swipnet.se> <837hjlr78p.fsf@gnu.org> <87zkwhtws5.fsf@uwakimon.sk.tsukuba.ac.jp> <83tymppj62.fsf@gnu.org> <871v9t8klf.fsf@uwakimon.sk.tsukuba.ac.jp> <83lj81pazq.fsf@gnu.org> <83aaogpcbu.fsf@gnu.org> <87vd737pxd.fsf@uwakimon.sk.tsukuba.ac.jp> <83occvohxc.fsf@gnu.org> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: dough.gmane.org 1282460172 21441 80.91.229.12 (22 Aug 2010 06:56:12 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Sun, 22 Aug 2010 06:56:12 +0000 (UTC) Cc: Leo , emacs-devel@gnu.org To: Eli Zaretskii Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sun Aug 22 08:56:11 2010 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1On4TS-0005Lc-GQ for ged-emacs-devel@m.gmane.org; Sun, 22 Aug 2010 08:56:10 +0200 Original-Received: from localhost ([127.0.0.1]:50114 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1On4TR-0001nv-C5 for ged-emacs-devel@m.gmane.org; Sun, 22 Aug 2010 02:56:09 -0400 Original-Received: from [140.186.70.92] (port=52807 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1On4TJ-0001nc-JS for emacs-devel@gnu.org; Sun, 22 Aug 2010 02:56:02 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1On4TI-0003lw-C4 for emacs-devel@gnu.org; Sun, 22 Aug 2010 02:56:01 -0400 Original-Received: from imss12.cc.tsukuba.ac.jp ([130.158.254.161]:52134) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1On4TG-0003lT-HJ; Sun, 22 Aug 2010 02:55:59 -0400 Original-Received: from imss12.cc.tsukuba.ac.jp (imss12.cc.tsukuba.ac.jp [127.0.0.1]) by postfix.imss70 (Postfix) with ESMTP id F2768F4003; Sun, 22 Aug 2010 15:55:53 +0900 (JST) Original-Received: from mgmt2.sk.tsukuba.ac.jp (unknown [130.158.97.224]) by imss12.cc.tsukuba.ac.jp (Postfix) with ESMTP id E2B2BF4002; Sun, 22 Aug 2010 15:55:53 +0900 (JST) Original-Received: from uwakimon.sk.tsukuba.ac.jp (uwakimon.sk.tsukuba.ac.jp [130.158.99.156]) by mgmt2.sk.tsukuba.ac.jp (Postfix) with ESMTP id DDECD9702F3; Sun, 22 Aug 2010 15:55:53 +0900 (JST) Original-Received: by uwakimon.sk.tsukuba.ac.jp (Postfix, from userid 1000) id 681361A2C38; Sun, 22 Aug 2010 15:52:44 +0900 (JST) In-Reply-To: <83occvohxc.fsf@gnu.org> X-Mailer: VM undefined under 21.5 (beta29) "garbanzo" ed3b274cc037 XEmacs Lucid (x86_64-unknown-linux) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6, seldom 2.4 (older, 4) X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:129006 Archived-At: Eli Zaretskii writes: > > From: Leo > > Date: Sat, 21 Aug 2010 20:50:35 +0100 > > > > Branching in git is as fast as: > > > > echo 7adb0b64823cbdcfbbcac9a9e32c6b435f57d889 > > > .git/refs/heads/mybranch > > > > basically writing a 40-char string to a file. > > Are all the branches co-located? I can't speak for Leo, but in my case all my git branches are colocated by project. If I had any upstreams that used git, my integration branches would have repos separate from my working branches, but the working branches would all share objects (see below). I even tried colocating Emacs and XEmacs, which worked (eg, for cherry-picking changes) but wasn't worth the effort (because I didn't update Emacs that often, and then XEmacs decided on hg which didn't do colocated branches at all well at that time). > If not, how do you cope with the bootstrap of a new branch, which > takes much longer than writing a string to a file? It doesn't take very long to create a new branch in a separate workspace. It takes the time it takes to unpack a source tarball if you do it sanely. # get the original, maintain it as a mirror # takes me less than 2 minutes IIRC; Linus's branch of kernel < 15 min. $ git clone ssh://scm.kernel.org/git/git.git pristine # make a new working branch the least efficient usual way # creates new .git with metadata by copying (a few kB), symlinks to # object database (probably many MB, a few files), then checks out # working tree $ git clone pristine working # switch HEAD to branch named "working" $ git checkout -b working # make a new working branch very efficiently, but somewhat fragile # shares the object database $ export GIT_OBJECT_DIRECTORY=`pwd`/pristine/.git/objects $ mkdir yowsa $ cd yowsa # assume we want to start this branch from "master" (git-ese for "trunk") $ git checkout -b yowsa master I just don't hesitate to do these operations in git or hg. I hesitate to even think about them in bzr or darcs.