From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp10.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms5.migadu.com with LMTPS id IPQGKzLGYWO9NwEAbAwnHQ (envelope-from ) for ; Wed, 02 Nov 2022 02:21:54 +0100 Received: from aspmx1.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp10.migadu.com with LMTPS id gKrsKTLGYWND3gAAG6o9tA (envelope-from ) for ; Wed, 02 Nov 2022 02:21:54 +0100 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 4A3BC18332 for ; Wed, 2 Nov 2022 02:21:54 +0100 (CET) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oq2RV-0005nC-I7; Tue, 01 Nov 2022 21:21:21 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oq2RU-0005n5-Sb for guix-devel@gnu.org; Tue, 01 Nov 2022 21:21:20 -0400 Received: from mx0.riseup.net ([198.252.153.6]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oq2RR-0000cr-4g for guix-devel@gnu.org; Tue, 01 Nov 2022 21:21:20 -0400 Received: from fews1.riseup.net (fews1-pn.riseup.net [10.0.1.83]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "mail.riseup.net", Issuer "R3" (not verified)) by mx0.riseup.net (Postfix) with ESMTPS id 4N28Gz4yFnz9sxc for ; Wed, 2 Nov 2022 01:21:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=riseup.net; s=squak; t=1667352075; bh=dbaQcsHRD8YpNN9MshYY9h/R9PpYBbmKyqkNkWSFqMQ=; h=From:To:Subject:Date:From; b=NQTx+fXLbf4yQeAWVGY/qSXiE/ySz2XFpju626PqegLC1RZuGnSBaHnZ/3vousk7S i1B7Y0orqCFIUWYW6yCIiFNeDw9qhQyOq83/TEyeMiqUzT4C7HqcAOgcep+aixXrFc TO6Cn8qnV1QrIXK4YKmL7ilok2xMjN8cUlp2ulXY= X-Riseup-User-ID: 48E0670AB1A30CE680BF5C02AE7112247D62662E44E3CF2C249FD4F21F1643BD Received: from [127.0.0.1] (localhost [127.0.0.1]) by fews1.riseup.net (Postfix) with ESMTPSA id 4N28Gz08gRz5vRh for ; Wed, 2 Nov 2022 01:21:14 +0000 (UTC) From: Csepp To: guix-devel@gnu.org Subject: splitting up and sorting commits? Date: Wed, 02 Nov 2022 00:05:54 +0000 Message-ID: <87cza65i1z.fsf@riseup.net> MIME-Version: 1.0 Content-Type: text/plain Received-SPF: pass client-ip=198.252.153.6; envelope-from=raingloom@riseup.net; helo=mx0.riseup.net X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: guix-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "Guix-devel" Errors-To: guix-devel-bounces+larch=yhetil.org@gnu.org X-Migadu-Flow: FLOW_IN X-Migadu-Country: US ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1667352114; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type:list-id:list-help:list-unsubscribe: list-subscribe:list-post:dkim-signature; bh=kvhVaU8YkJmw+99vF85IageHnci8SJnjQh9RG0DTuuo=; b=amcXbYfqwzaQ4SDbET7b7KLUQreTEuEx/XuIx7+MoV7Afhz9PvmrgyDduIcTeQFg63mMUj Wqde/EABy9dD46yA5p0CNXZrkIzndVSsHT8lk/x/98XCtRpx64O/XfX3iEwE+n+QsQp/nW 8sXUMcAURP5cT78uyfxWKd+01LlHcQaa2I+FjjCoqqsqLzpbDWE+qHYIEKOmQhmp3A9NCg eXdvnTatlfKI5TEXqrHpaWKRvZPzRe5simkRG1azYtY82D544nB8v+yu6XrIDbCsH00oIg 64KfgNV69f/c5bT/KSO/YYy9vcCMd0s4HDroTXeHA5uE1A/BA6J2QCRiBJ0LPw== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1667352114; a=rsa-sha256; cv=none; b=EaBWOh5QTLOukgcXw+WS3+4ZuC2aguYwnYNX/mrbZltWAqrnDRWqA4EdqxfZjN4m2Fnrfk hiG/2sTvfxvNVXlDmqyG0tFIyR1KrQeWQodO2BtXVHzM6MpLUHwcEV0HAxlW/qeEqYGbqN IcgP+eNGFwhKZXXHT0QPP5o53bCg/LvrL/SZfh3GdSeGw/3sDs/BptJ7jHgTSdh0+MwAnz mGyB2DYvOdgDYwlYqPF/hFnDIk9TZEDHRIc1uFzESFzjgXgbOZRmpD+AncZKu2ySVoTa3I SD7P/hWxgAxZ0K7kYy86iLOtBIjoFvhRy72YSq7edlpzub6kZO0pTbFE370pwg== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=riseup.net header.s=squak header.b=NQTx+fXL; dmarc=pass (policy=none) header.from=riseup.net; spf=pass (aspmx1.migadu.com: domain of "guix-devel-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-devel-bounces+larch=yhetil.org@gnu.org" X-Migadu-Spam-Score: -5.08 Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=riseup.net header.s=squak header.b=NQTx+fXL; dmarc=pass (policy=none) header.from=riseup.net; spf=pass (aspmx1.migadu.com: domain of "guix-devel-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-devel-bounces+larch=yhetil.org@gnu.org" X-Migadu-Queue-Id: 4A3BC18332 X-Spam-Score: -5.08 X-Migadu-Scanner: scn0.migadu.com X-TUID: 3ATWc0u5w/Zp Hey all! I'm working on a fairly sizeable MirageOS branch, just getting the hello-world kernel running involved adding about 40 packages. Very often I run into a scenario where an imported package needs some other package to compile, and then that needs another, and then that another, and so on and so on, so by the time I can commit the first I have a plethora of new packages that should in theory all get their own commits. There are two problems with this: * Splitting up the commit is a pain, even with git add --patch, because hand editing the diff sucks and splitting does not work, possibly due to there not being enough space between defines for git's taste. * It is very easy for package to get added before their dependencies, so even though by the end of the commit chain everything builds perfectly fine, there are intermediate commits that can't be tested on their own. How should one solve this? I already spent way too much time on a script that I foolishly thought would be able to automatically sort commits based on their dependencies, but now I'm throwing in the towel, it's not getting anywhere.