From patchwork Thu Mar 28 17:17:20 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christian Couder X-Patchwork-Id: 10875499 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 24B5813B5 for ; Thu, 28 Mar 2019 17:17:51 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 0184B28B49 for ; Thu, 28 Mar 2019 17:17:51 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id E9F9828BBB; Thu, 28 Mar 2019 17:17:50 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 67E9628B49 for ; Thu, 28 Mar 2019 17:17:50 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726543AbfC1RRt (ORCPT ); Thu, 28 Mar 2019 13:17:49 -0400 Received: from mail-wm1-f67.google.com ([209.85.128.67]:34195 "EHLO mail-wm1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726029AbfC1RRt (ORCPT ); Thu, 28 Mar 2019 13:17:49 -0400 Received: by mail-wm1-f67.google.com with SMTP id o10so7752062wmc.1 for ; Thu, 28 Mar 2019 10:17:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=lwCkn/HVhD2YhKUCSfTcjbYyFQgaiwYbuGVuEFudRWM=; b=ZtHORA7btuxqZbUVqo5Bwj+CDfHiDfZ32VmuylZd8P0VQOojTxAHnz13DNXW2KPj5r qISNsvUx8PlHQqKHQ/wrRFPE+whb+EbjCpaQeOQhGZwFnnXN0otAxc9hqea5uoftypmH Vknm/sgdgRcRy8Z1hbKCuIdHTYG6/+FqqREJEOibcj2leGbZKs5iFB/KD/hrGUPWqAYJ LD4Z7skbgBiL9XdnnsKyfqUBSkK23+Gp2ZFFrf87KpVMKuIkzTZ12leAJgTQKbEiqWpl /CbDUWkiq3B1C/G+dx/FQzedEeUyZXov0hh+0fGYw2w4t2wrmuY+L6Adq4X+P2A5QL6l IuPA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=lwCkn/HVhD2YhKUCSfTcjbYyFQgaiwYbuGVuEFudRWM=; b=nIH6tQAo3qUSD+8R72SYwJjFjZxK9PSBwNuE8F8pfBiCVZJtRU9cWc/Mk8mVTFVW3H LCupwt0mTkDciEBN7kb+037dEN1bIV3A1BDP5C/ymjXVe8XZdMl7PouO+bpIoXZypATE ieZ2YeN7zgxttgFIe4PipaUlspMXfEWtOSzrEFQHawNNDM8fP8Qs0EBgcvhNUO00cGsQ w4iDnYuU4n14DbjoRaC19dY/+rD/4LfrBcdG4VJmCE5uW1my0bkS1SqsI+A4HoPAFmZV GWzG9LKeUh6qx6wfbi9eDGIWMh7EMAs/17VAIRYjMB6NOv0PVCKYF7oRxYApmrE3sD02 HRQw== X-Gm-Message-State: APjAAAXJjIrnzCr2X3Z6Gxu5LBUkoMnDVwLwl093pRk2fgFnVnb383kH c9tRDDloca2RewgaB+NQhTU4n2FK X-Google-Smtp-Source: APXvYqz3CKWXfLvtN2InGWHQJAhXOijOh5WZMn+8KnAHtiVeAoO79z+WPwLWF4rjXR4ihhPB4fXs2A== X-Received: by 2002:a1c:ca06:: with SMTP id a6mr738912wmg.14.1553793466379; Thu, 28 Mar 2019 10:17:46 -0700 (PDT) Received: from localhost.localdomain ([2a04:cec0:1085:dfe0:49c5:28f4:744c:fa99]) by smtp.gmail.com with ESMTPSA id d17sm25837369wrw.88.2019.03.28.10.17.45 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 28 Mar 2019 10:17:45 -0700 (PDT) From: Christian Couder X-Google-Original-From: Christian Couder To: git@vger.kernel.org Cc: Junio C Hamano , Andreas Schwab , Christian Couder Subject: [PATCH 1/3] t6050: use test_line_count instead of wc -l Date: Thu, 28 Mar 2019 18:17:20 +0100 Message-Id: <20190328171722.9753-1-chriscool@tuxfamily.org> X-Mailer: git-send-email 2.21.0.68.gd997bba285.dirty MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP This modernizes a test and makes it more portable. Signed-off-by: Christian Couder --- t/t6050-replace.sh | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/t/t6050-replace.sh b/t/t6050-replace.sh index d638119750..41b177936e 100755 --- a/t/t6050-replace.sh +++ b/t/t6050-replace.sh @@ -393,9 +393,11 @@ test_expect_success 'replace ref cleanup' ' ' test_expect_success '--graft with and without already replaced object' ' - test $(git log --oneline | wc -l) = 7 && + git log --oneline >log && + test_line_count = 7 log && git replace --graft $HASH5 && - test $(git log --oneline | wc -l) = 3 && + git log --oneline >log && + test_line_count = 3 log && commit_has_parents $HASH5 && test_must_fail git replace --graft $HASH5 $HASH4 $HASH3 && git replace --force -g $HASH5 $HASH4 $HASH3 && From patchwork Thu Mar 28 17:17:21 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christian Couder X-Patchwork-Id: 10875501 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 11D2413B5 for ; Thu, 28 Mar 2019 17:17:55 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id E09F528B49 for ; Thu, 28 Mar 2019 17:17:54 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id D357A28BBB; Thu, 28 Mar 2019 17:17:54 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id A7F3728B49 for ; Thu, 28 Mar 2019 17:17:53 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726751AbfC1RRw (ORCPT ); Thu, 28 Mar 2019 13:17:52 -0400 Received: from mail-wr1-f66.google.com ([209.85.221.66]:38397 "EHLO mail-wr1-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726029AbfC1RRw (ORCPT ); Thu, 28 Mar 2019 13:17:52 -0400 Received: by mail-wr1-f66.google.com with SMTP id k11so16500284wro.5 for ; Thu, 28 Mar 2019 10:17:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=aPoaRr4MQJOjKlAQc67uV9qdtpB1pZyevaMgzEXSn90=; b=shg51U8FBrPa8s4HA/2BiEhUVBNeh2N3VmicADnpQYhEmrw8f/y8u2z3a3ncVK+g1a MsClGFStKMAndPWTpNZalFJ+f0fj34lsHomHEViIt2AU3Lmm9Eu9u1rFcFeeoCCF6XVS mYUo5lwg2oK5f5sb3dxcV9lWENWrRg9wf1MRWrgk1hGNuxq3+Mx72f282XJJzfBbrE72 Y/FzPN4KZ3huz/QTUKLXDQOzWIW3yOKTGOjZLIxy/G0Kd7rTxSFE3U9g8wcNzwW/7qgz aZT+VsTxFSOu2153OuXxybLQt6cjkwROHyDXQam0jJ0zLgJQfpYy6Hqz+Q8nOs/FjhJ5 cRpA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=aPoaRr4MQJOjKlAQc67uV9qdtpB1pZyevaMgzEXSn90=; b=Mip7ZTIu6rNoL2ejD2XJwydAeFWN2osmNbY71HVsvfyJtkR8CAA7zagPmVYFs994+8 HArEP2Fvh3gKnAXYiE9C9sVBxIawOfb4gVGDyzpZ8PQvz9VuoJGLVm0TmDJC7DtBnpVR +CEVqbOqMqPTJG7UPML/nhe8rh/Hq3aRVF3iM5aEKdqUg1L0ehxxpDwNmb2Y1JWZOsg6 zAZh7E6YdxkPs52+a23gmzxHm1srbX3+ilTzLREhISJW8nO/JwB0A/7PfeV07J/gIk20 20PYB71qoctzdLYshUHDsIXY/dEToBlYPGj66UowMFhds0Rj3XLEhqQA3cnejx+ZWb1c 4fRw== X-Gm-Message-State: APjAAAV6HCrIH1glEAtoyEMV6bKSyl4vAptOgAMZwV5vZuSRD1LFvywN gFtgEB17qE/NRusVZP1OAjgZ/b/q X-Google-Smtp-Source: APXvYqxF2SfdRQStcY54u0kE5nUjomi0NLKx8ELQqaGqeP9iOhszTEenfZ3c0CRP5Ch6NDkR0OjlZQ== X-Received: by 2002:adf:ce87:: with SMTP id r7mr27027645wrn.324.1553793470755; Thu, 28 Mar 2019 10:17:50 -0700 (PDT) Received: from localhost.localdomain ([2a04:cec0:1085:dfe0:49c5:28f4:744c:fa99]) by smtp.gmail.com with ESMTPSA id d17sm25837369wrw.88.2019.03.28.10.17.49 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 28 Mar 2019 10:17:50 -0700 (PDT) From: Christian Couder X-Google-Original-From: Christian Couder To: git@vger.kernel.org Cc: Junio C Hamano , Andreas Schwab , Christian Couder Subject: [PATCH 2/3] t6050: redirect expected error output to /dev/null Date: Thu, 28 Mar 2019 18:17:21 +0100 Message-Id: <20190328171722.9753-2-chriscool@tuxfamily.org> X-Mailer: git-send-email 2.21.0.68.gd997bba285.dirty In-Reply-To: <20190328171722.9753-1-chriscool@tuxfamily.org> References: <20190328171722.9753-1-chriscool@tuxfamily.org> MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Otherwise the error from `git rev-parse` is uselessly polluting the debug output. Signed-off-by: Christian Couder --- t/t6050-replace.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/t/t6050-replace.sh b/t/t6050-replace.sh index 41b177936e..5cb8281bab 100755 --- a/t/t6050-replace.sh +++ b/t/t6050-replace.sh @@ -40,7 +40,7 @@ commit_peeling_shows_parents () test "$_found" = "$_parent" || return 1 _parent_number=$(( $_parent_number + 1 )) done && - test_must_fail git rev-parse --verify $_commit^$_parent_number + test_must_fail git rev-parse --verify $_commit^$_parent_number 2>/dev/null } commit_has_parents () From patchwork Thu Mar 28 17:17:22 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christian Couder X-Patchwork-Id: 10875531 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 3C9911669 for ; Thu, 28 Mar 2019 17:18:36 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 18F0F28B49 for ; Thu, 28 Mar 2019 17:18:36 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 0CFE928BE7; Thu, 28 Mar 2019 17:18:36 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 9E5C228B49 for ; Thu, 28 Mar 2019 17:18:35 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727248AbfC1RR4 (ORCPT ); Thu, 28 Mar 2019 13:17:56 -0400 Received: from mail-wr1-f65.google.com ([209.85.221.65]:41114 "EHLO mail-wr1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726769AbfC1RR4 (ORCPT ); Thu, 28 Mar 2019 13:17:56 -0400 Received: by mail-wr1-f65.google.com with SMTP id r4so16210390wrq.8 for ; Thu, 28 Mar 2019 10:17:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=4SLhjRdKqdGMkk/almrjdvnpSk+ZwIzdmxeVAGcOkLg=; b=W8qpINTjg7xVtJ9a1H05sVi2c7JmPcjv3Wu5mv3qulmV7cW4vtVXbkohLWB3MFzHpD Dv5dgSpgHetr0rgb2UTEudxb+MP9voXiG1E+f2uwdaCBmN2M4kNA6oVyqbQq3B/ob0r3 iOTHeUOtCmJmmg+qCspfTuBhxYNWBvk7AdsrlGqPpCmDJsGrf+DB9JRMjY+z41JI9aar xRW3jqCiR478pZFvW531AQ+JaAGNMhsePHSTMHcogAFwFJO0SvADOV3HbrXJ1+NR8Iir DTVi65t37qIIyt9E7hIaAQnzJh6roTomeLKorUMeXere/K5ekPFrKgS1rDjC2bBx4kUd LT3A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=4SLhjRdKqdGMkk/almrjdvnpSk+ZwIzdmxeVAGcOkLg=; b=nXiOyNE7WWWTpeb+9a2Q5pdMRC4Yr3CuS3v5OlL6Qx1QfiobliCYNL2USD6MkNAjzw nJkdmcNnu0/U35pM0M5+GZ8eBLVY7dJPvQCFxbPjBE/1D9fxL6WSn4N6AE7veolPACQO zFx2jSOS8oYUTaa3olyiZ9Re0gECIJSUIkGOjOSjxEUgnk+Yqe+yTnObSKVoh7+pmDZr 4OueoEmo49rwV8MStMvcVkbsXQXAPFuNjkC/W65ubz1CtT43HgZRNvLwUQdNUKC8M4Rh /D4wAWmkXFxBDWPTE59PIS7mJN/kCVC1HL6Kne2qvOIRwMW+xsPyHdv5btGY7kD1p9BB 9krQ== X-Gm-Message-State: APjAAAUHX+2cKBtutFzI1k1D0/asNJzO1XTSgYIRzicj6hb9YOV19Vio SRJU+IvSMZDcsAeb/DbWFD5hK48H X-Google-Smtp-Source: APXvYqwIQ3ITj8YFFaoC5jpFA2ofXwkudxhKe5WHM8AxRAkiq63sB+dwcpmbJMmJsLl6L0uNszG6Gg== X-Received: by 2002:adf:f488:: with SMTP id l8mr27753762wro.213.1553793474428; Thu, 28 Mar 2019 10:17:54 -0700 (PDT) Received: from localhost.localdomain ([2a04:cec0:1085:dfe0:49c5:28f4:744c:fa99]) by smtp.gmail.com with ESMTPSA id d17sm25837369wrw.88.2019.03.28.10.17.53 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 28 Mar 2019 10:17:53 -0700 (PDT) From: Christian Couder X-Google-Original-From: Christian Couder To: git@vger.kernel.org Cc: Junio C Hamano , Andreas Schwab , Christian Couder Subject: [PATCH 3/3] replace: fix --graft when passing a tag Date: Thu, 28 Mar 2019 18:17:22 +0100 Message-Id: <20190328171722.9753-3-chriscool@tuxfamily.org> X-Mailer: git-send-email 2.21.0.68.gd997bba285.dirty In-Reply-To: <20190328171722.9753-1-chriscool@tuxfamily.org> References: <20190328171722.9753-1-chriscool@tuxfamily.org> MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP When passing a tag as a parent argument to `git replace --graft`, it can be useful to accept it and use the underlying commit as a parent. This already works for lightweight tags, but unfortunately for annotated tags we have been using the hash of the tag object instead of the hash of the underlying commit as a parent in the replacement object we create. This created invalid objects, but the replace succeeded even if it showed an error like: error: object A is a tag, not a commit This patch fixes that by using the hash of the underlying commit when an annotated tag is passed. While at it, let's also update an error message to make it clearer. Signed-off-by: Christian Couder Reviewed-by: Taylor Blau --- This doesn't fix issues when an annotated tag is passed as the replaced object, that is when the tag is the first argument after `git replace --graft`. But this can be done in subsequent patches I already started to work on. builtin/replace.c | 9 ++++++--- t/t6050-replace.sh | 11 +++++++++++ 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/builtin/replace.c b/builtin/replace.c index f5701629a8..b0a9227f9a 100644 --- a/builtin/replace.c +++ b/builtin/replace.c @@ -370,16 +370,19 @@ static int replace_parents(struct strbuf *buf, int argc, const char **argv) /* prepare new parents */ for (i = 0; i < argc; i++) { struct object_id oid; + struct commit *commit; + if (get_oid(argv[i], &oid) < 0) { strbuf_release(&new_parents); return error(_("not a valid object name: '%s'"), argv[i]); } - if (!lookup_commit_reference(the_repository, &oid)) { + commit = lookup_commit_reference(the_repository, &oid); + if (!commit) { strbuf_release(&new_parents); - return error(_("could not parse %s"), argv[i]); + return error(_("could not parse %s as a commit"), argv[i]); } - strbuf_addf(&new_parents, "parent %s\n", oid_to_hex(&oid)); + strbuf_addf(&new_parents, "parent %s\n", oid_to_hex(&commit->object.oid)); } /* replace existing parents with new ones */ diff --git a/t/t6050-replace.sh b/t/t6050-replace.sh index 5cb8281bab..72075983ac 100755 --- a/t/t6050-replace.sh +++ b/t/t6050-replace.sh @@ -405,6 +405,17 @@ test_expect_success '--graft with and without already replaced object' ' git replace -d $HASH5 ' +test_expect_success '--graft using a tag as the new parent' ' + git tag new_parent $HASH5 && + git replace --graft $HASH7 new_parent && + commit_has_parents $HASH7 $HASH5 && + git replace -d $HASH7 && + git tag -a -m "annotated new parent tag" annotated_new_parent $HASH5 && + git replace --graft $HASH7 annotated_new_parent && + commit_has_parents $HASH7 $HASH5 && + git replace -d $HASH7 +' + test_expect_success GPG 'set up a signed commit' ' echo "line 17" >>hello && echo "line 18" >>hello &&