From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Achim Gratz Newsgroups: gmane.emacs.devel Subject: Re: Multiple checkout copies Date: Wed, 04 Feb 2015 09:48:44 +0100 Organization: Linux Private Site Message-ID: <874mr29i4z.fsf@Rainer.invalid> References: NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1423039748 29237 80.91.229.3 (4 Feb 2015 08:49:08 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Wed, 4 Feb 2015 08:49:08 +0000 (UTC) To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Wed Feb 04 09:49:04 2015 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1YIvdv-0005Mc-5O for ged-emacs-devel@m.gmane.org; Wed, 04 Feb 2015 09:49:03 +0100 Original-Received: from localhost ([::1]:35111 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YIvdu-000167-KE for ged-emacs-devel@m.gmane.org; Wed, 04 Feb 2015 03:49:02 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:44872) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YIvdr-000160-7k for emacs-devel@gnu.org; Wed, 04 Feb 2015 03:49:00 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YIvdn-0003Ta-6d for emacs-devel@gnu.org; Wed, 04 Feb 2015 03:48:59 -0500 Original-Received: from plane.gmane.org ([80.91.229.3]:52520) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YIvdm-0003SC-Uw for emacs-devel@gnu.org; Wed, 04 Feb 2015 03:48:55 -0500 Original-Received: from list by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1YIvdj-0005FX-HA for emacs-devel@gnu.org; Wed, 04 Feb 2015 09:48:51 +0100 Original-Received: from p54b47973.dip0.t-ipconnect.de ([84.180.121.115]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Wed, 04 Feb 2015 09:48:51 +0100 Original-Received: from Stromeko by p54b47973.dip0.t-ipconnect.de with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Wed, 04 Feb 2015 09:48:51 +0100 X-Injected-Via-Gmane: http://gmane.org/ Original-Lines: 45 Original-X-Complaints-To: usenet@ger.gmane.org X-Gmane-NNTP-Posting-Host: p54b47973.dip0.t-ipconnect.de User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux) Cancel-Lock: sha1:Glw8jiYO5/kzrs+h/sz6/stVGZ8= X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 80.91.229.3 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:182359 Archived-At: Richard Stallman writes: > > A slightly different version of the above will save disk space by using > > hard links to files in the original repository: > > git clone emacs emacs-24 > > cd emacs-24 > > git checkout emacs-24 > > Thanks. Maybe that is what I want to do. > > My idea is to do my editing in the 'emacs' directory, as well as > pulling updates there. So these points seem like features rather than > bugs. The safest (but a bit more long-winded) way of dealing with simultaneous work on multiple branches is IMHO this setup (per example doing work on master and emacs-24): $ git clone git://git.savannah.gnu.org/emacs.git --bare emacs.git $ git clone emacs.git/ emacs-master $ git clone emacs.git/ emacs-24 $ cd emacs-24 ; git checkout emacs-24 ; cd .. This way there's only a single repository to push upstream from (which also makes it a bit easier to check what you intend to push). Making this bare ensures you don't do any other work on this repo. You only need to be connected to the internet for updating this repo and can air-gap otherwise (or work through a firewall). Last but not least, all clones made from that single bare repo all have the same configuration, so you don't need to remember which one is upstream of the other. The downside is that you must always update in two steps when pulling (emacs.git from savannah, then the working repo from emacs.git). However, this is easily scripted or made an alias. Pushing also has to be done in two steps, just the other way around. I personally see this as an advantage, since it gives you another check-point before things go public and become essentially immutable. Regards, Achim. -- +<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+ Wavetables for the Terratec KOMPLEXER: http://Synth.Stromeko.net/Downloads.html#KomplexerWaves