From mboxrd@z Thu Jan 1 00:00:00 1970 From: Johannes Sixt Subject: Re: [PATCH v7 2/8] cherry-pick: treat CHERRY_PICK_HEAD and REVERT_HEAD as refs Date: Wed, 08 Jul 2015 23:14:55 +0200 Message-ID: <559D92CF.7000408@kdbg.org> References: <1436316963-25520-1-git-send-email-dturner@twopensource.com> <1436316963-25520-2-git-send-email-dturner@twopensource.com> <559D6208.8090607@kdbg.org> <1436382962.4542.8.camel@twopensource.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Cc: git@vger.kernel.org, mhagger@alum.mit.edu To: David Turner X-From: git-owner@vger.kernel.org Wed Jul 08 23:15:05 2015 Return-path: Envelope-to: gcvg-git-2@plane.gmane.org Received: from vger.kernel.org ([209.132.180.67]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1ZCwgJ-0005AK-Qc for gcvg-git-2@plane.gmane.org; Wed, 08 Jul 2015 23:15:04 +0200 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1759034AbbGHVO7 (ORCPT ); Wed, 8 Jul 2015 17:14:59 -0400 Received: from bsmtp8.bon.at ([213.33.87.20]:33673 "EHLO bsmtp.bon.at" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1758935AbbGHVO6 (ORCPT ); Wed, 8 Jul 2015 17:14:58 -0400 Received: from dx.site (unknown [93.83.142.38]) by bsmtp.bon.at (Postfix) with ESMTPSA id 3mRYLS3Jvhz5tlJ; Wed, 8 Jul 2015 23:14:56 +0200 (CEST) Received: from [IPv6:::1] (localhost [IPv6:::1]) by dx.site (Postfix) with ESMTP id C81F452BD; Wed, 8 Jul 2015 23:14:55 +0200 (CEST) User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0 In-Reply-To: <1436382962.4542.8.camel@twopensource.com> Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org Archived-At: Am 08.07.2015 um 21:16 schrieb David Turner: > On Wed, 2015-07-08 at 19:46 +0200, Johannes Sixt wrote: >> Am 08.07.2015 um 02:55 schrieb David Turner: >>> Instead of directly writing to and reading from files in >>> $GIT_DIR, use ref API to interact with CHERRY_PICK_HEAD >>> and REVERT_HEAD. >>> >>> Signed-off-by: David Turner >>> --- >> ... >>> diff --git a/contrib/completion/git-prompt.sh b/contrib/completion/git-prompt.sh >>> index 366f0bc..e2c5583 100644 >>> --- a/contrib/completion/git-prompt.sh >>> +++ b/contrib/completion/git-prompt.sh >>> @@ -415,9 +415,9 @@ __git_ps1 () >>> fi >>> elif [ -f "$g/MERGE_HEAD" ]; then >>> r="|MERGING" >>> - elif [ -f "$g/CHERRY_PICK_HEAD" ]; then >>> + elif git rev-parse --quiet --verify "CHERRY_PICK_HEAD" >/dev/null; then >>> r="|CHERRY-PICKING" >>> - elif [ -f "$g/REVERT_HEAD" ]; then >>> + elif git rev-parse --quiet --verify "REVERT_HEAD" >/dev/null; then >>> r="|REVERTING" >>> elif [ -f "$g/BISECT_LOG" ]; then >>> r="|BISECTING" >> >> We are trying very hard not to spawn any new processes in __git_ps1(). >> So, I raise a moderate veto against this hunk. > > Do you have an alternate suggestion about how to accomplish the same > thing? Here are my ideas: > > We could special-case CHERRY_PICK_HEAD and REVERT_HEAD to be files > independent of the ref backend, but that tends to complicate the > backends. I think this is a mistake. > > We could reduce the number from two to one by providing a new > git-am-status command which outputs one of "CHERRY-PICKING", > "REVERTING", or "" (or maybe it would also handle rebase and am). We > could also generalize it to "git-prompt-helper" or something by moving > that entire bunch of if statements inside. This would replace calls to > "git describe". > > But you probably have a better idea. Isn't it mere coincidence that the content of these two files looks like a non-packed ref? Wouldn't it be better to consider the two akin to MERGE_HEAD (which is not a ref because it records more than just a commit name)? -- Hannes