From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: "Eric S. Raymond" Newsgroups: gmane.emacs.devel Subject: Re: Removing rollback from VC mode - request for comment Date: Thu, 11 Dec 2014 12:45:08 -0500 Organization: Eric Conspiracy Secret Labs Message-ID: <20141211174508.GC581@thyrsus.com> References: <20141211092138.6D5F6C008E@snark.thyrsus.com> <874mt2iksu.fsf@fencepost.gnu.org> <87fvcm8jf0.fsf@zigzag.favinet> <20141211125145.GB25499@thyrsus.com> <83d27qtar6.fsf@gnu.org> Reply-To: esr@thyrsus.com NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: ger.gmane.org 1418319932 19692 80.91.229.3 (11 Dec 2014 17:45:32 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Thu, 11 Dec 2014 17:45:32 +0000 (UTC) Cc: emacs-devel@gnu.org To: Eli Zaretskii Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Thu Dec 11 18:45:27 2014 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 1Xz7nq-00076D-J1 for ged-emacs-devel@m.gmane.org; Thu, 11 Dec 2014 18:45:26 +0100 Original-Received: from localhost ([::1]:52829 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Xz7nq-0002WD-26 for ged-emacs-devel@m.gmane.org; Thu, 11 Dec 2014 12:45:26 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:37122) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Xz7nj-0002Vy-Fl for emacs-devel@gnu.org; Thu, 11 Dec 2014 12:45:23 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Xz7nf-0005Lu-0l for emacs-devel@gnu.org; Thu, 11 Dec 2014 12:45:19 -0500 Original-Received: from static-71-162-243-5.phlapa.fios.verizon.net ([71.162.243.5]:38156 helo=snark.thyrsus.com) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Xz7nY-0005J7-U9; Thu, 11 Dec 2014 12:45:08 -0500 Original-Received: by snark.thyrsus.com (Postfix, from userid 1000) id 630D2C0092; Thu, 11 Dec 2014 12:45:08 -0500 (EST) Content-Disposition: inline In-Reply-To: <83d27qtar6.fsf@gnu.org> X-Eric-Conspiracy: There is no conspiracy User-Agent: Mutt/1.5.21 (2010-09-15) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 71.162.243.5 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:179807 Archived-At: Eli Zaretskii : > > In other VCSes it would be difficult to even attempt this. > > ??? It's known as "reverse cherry-picking", and is AFAIK possible in > Git, bzr, and hg. > > Or maybe I don't understand what ttn was alluding to. You don't, not quite. Reverse cherry pick doesn't actually do the git equivalent of removing a delta; the history is not altered. Reverse cherry pic only requires forward composition of a reversed patch onto the current branch tip - a much, *much* more tractable problem. The git equivalent of actually removing a delta would be *really hard*. You'd have to apply a reverse patch (in effect) against the blob, then against all of its successors, dealing with conflicts in some way. All the downstream hashes would be invalidated. A mess. This is why git only lets you remove tip deltas. -- Eric S. Raymond