From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp1 ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms0.migadu.com with LMTPS id kAouKMyfxmDxVAAAgWs5BA (envelope-from ) for ; Mon, 14 Jun 2021 02:16:12 +0200 Received: from aspmx1.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp1 with LMTPS id 4HaZI8yfxmA8CgAAbx9fmQ (envelope-from ) for ; Mon, 14 Jun 2021 00:16:12 +0000 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 01E0411A88 for ; Mon, 14 Jun 2021 02:16:12 +0200 (CEST) Received: from localhost ([::1]:59072 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lsaGv-0006Ue-ML for larch@yhetil.org; Sun, 13 Jun 2021 20:16:09 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:52596) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lsaGL-0006T3-3b for emacs-orgmode@gnu.org; Sun, 13 Jun 2021 20:15:33 -0400 Received: from mail-pj1-x102f.google.com ([2607:f8b0:4864:20::102f]:50738) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lsaGJ-0007XR-6X for emacs-orgmode@gnu.org; Sun, 13 Jun 2021 20:15:32 -0400 Received: by mail-pj1-x102f.google.com with SMTP id g4so8758698pjk.0 for ; Sun, 13 Jun 2021 17:15:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=references:user-agent:from:to:subject:date:in-reply-to:message-id :mime-version; bh=br3U1bEYS2X74Aa4VKRKYjl/ca0utEmBQ1nIayfwzpg=; b=E6FjZqsBO0Th7Vpvo+Ki081gvyeiT/Lg2CFJwq2IaLFw/Di9/kCvhWHmYvPlKe0zU6 Hyre4VHZGopBT+nucrXmGKSMnX9xEceHXW/CfTO9lzHw50NlxptJRo4ukPgw2NGIMICI unmLqEy3Bk0MDMICmER5s0wOBLiYxVMVB5QnPfrbdzMCTnSlrHWNQQQ+Wel0qfQawXy2 yLzkYrsi9Rgqn1xgU+GhR2EMdfIRITbD/ZzFyjrPLaJtt9K9/0poXRlzxU5uYwN69bg/ 19KAiGkEujxe1yi2MfDIdU+HQcEhld2ZVbafVTWyu4ijBtPkphUJhHdSSkjN1l+0IYBZ QNyQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:references:user-agent:from:to:subject:date :in-reply-to:message-id:mime-version; bh=br3U1bEYS2X74Aa4VKRKYjl/ca0utEmBQ1nIayfwzpg=; b=IYTRGhA6dAUAtw+Gx44qLdHibUqtIvCx9SRlA14zCyopYl9KriE+qhyGx02FKZHC20 3SLyNeYIrGihhaGrt+DLHjw3nhq9T61taSKl/L5GVkl0pGUiJcfeeXEKo4mT7Jn7yV38 qvRbFVe8JntE++3gD1QimGnBF76+mhfLXIwFeGv+OqBtCbbjnYN1lyQo7jCtHEOOUUnx 9VZSoGYY4avzEorQn1dWvMHY6DBzihEVeJdWMDMI9osp+zTumXc4Niw/NmbyhwGMdgyy kl636QcOQm9sgxXBPYX8TAWF+x2LFfFEc8upjg4Vc0Cq31rxtDQmWPWUVEPNnU+RUua2 VktQ== X-Gm-Message-State: AOAM532EgA+6olSV2B+hzIXrPFY5Ty9QBEVlk/+ocp/X3WEebsqwBIYD EqXqNGsz1hbN8VbEPo1JDJkDYrTbqdc= X-Google-Smtp-Source: ABdhPJyFfY073GdVb0P2KShngHVekcAaCfApsvJ8Z0TDHBk4SzOen7iaiFmH6fREu+v2q5byzepdvA== X-Received: by 2002:a17:902:ee8c:b029:fe:dc5f:564 with SMTP id a12-20020a170902ee8cb02900fedc5f0564mr14531729pld.71.1623629729013; Sun, 13 Jun 2021 17:15:29 -0700 (PDT) Received: from tim-desktop (106-69-124-223.dyn.iinet.net.au. [106.69.124.223]) by smtp.gmail.com with ESMTPSA id c7sm11043278pgh.72.2021.06.13.17.15.27 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 13 Jun 2021 17:15:28 -0700 (PDT) References: <643664.1623172504@apollo2.minshall.org> <87o8cafuex.fsf@gmail.com> <6271e100-9799-435a-992b-e657849c3302@www.fastmail.com> User-agent: mu4e 1.5.13; emacs 27.2.50 From: Tim Cross To: emacs-orgmode@gnu.org Subject: Re: literate programming, development log -- ideas? (ominbus reply) Date: Mon, 14 Jun 2021 09:13:41 +1000 In-reply-to: <6271e100-9799-435a-992b-e657849c3302@www.fastmail.com> Message-ID: <874ke1z4gz.fsf@gmail.com> MIME-Version: 1.0 Content-Type: text/plain Received-SPF: pass client-ip=2607:f8b0:4864:20::102f; envelope-from=theophilusx@gmail.com; helo=mail-pj1-x102f.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-orgmode@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+larch=yhetil.org@gnu.org Sender: "Emacs-orgmode" X-Migadu-Flow: FLOW_IN ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1623629772; 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:in-reply-to:in-reply-to: references:references:list-id:list-help:list-unsubscribe: list-subscribe:list-post:dkim-signature; bh=br3U1bEYS2X74Aa4VKRKYjl/ca0utEmBQ1nIayfwzpg=; b=adPxgIaBSito+8ee3peeqXMzpEWQ31VSBeHsgMoAreFZ2HrR0Pqemd/IlP3DJ1qEm5cgB8 /LzrUopnZh3IkpcmexAv6yFhpEqvd+Lo+g/Qfqv7jo+mCPOIW2aHlDHOcqHiJi+rIZSEIz s7bsWuuithZs4CA5co0HoAVtaGYAuXmJXeviPYPB+abyZDVIaRMXEGt1E5J3njo5XGaccH 6e9/Sjha5QjUDoep4DUgb4Iht8ESIU2kiwUawd9Y3h3TRsHoX5Tnq4Y0xzX/UGodZ3JekS mayFueSoYoHyndEDM0LmK49mtoihzlsIZgeRV1/1mI2xGBqwwsvhmoIFp8gwSg== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1623629772; a=rsa-sha256; cv=none; b=N3pXNvzAheccuGlHQIt70gzi8az8V3TZoTOTE0ZlDd8ZEcF+YeYrTjF/+0rF7WfJU+X51d NzX/GcQyIGlGU2IbotzXZP30LRDPKWbAO4WKHLIApjmzPVNIzx5rXmezF6+qDzjtRXJ6ty DYGdWm7sYfctIib40rFlGW6i+SaDYiD5s40YSf3oWUdYmx//7uEIa27+WqDbE0xvexvapM vPGe8Rx1qtapoVaFiSe4tt4slUlgp5op5yGIOA7rAbKfab0U9cQYZk8o9viLzjVZ8lirMb 66hLpAMY1ghy6Z5f755WXjD4hnnkQWU13ZjeCBPH+rmmmNpE1WrUseRcc3Rh7A== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20161025 header.b=E6FjZqsB; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (aspmx1.migadu.com: domain of emacs-orgmode-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=emacs-orgmode-bounces@gnu.org X-Migadu-Spam-Score: -3.12 Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20161025 header.b=E6FjZqsB; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (aspmx1.migadu.com: domain of emacs-orgmode-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=emacs-orgmode-bounces@gnu.org X-Migadu-Queue-Id: 01E0411A88 X-Spam-Score: -3.12 X-Migadu-Scanner: scn1.migadu.com X-TUID: nZFdzKpVFp0b "Samuel Banya" writes: > Hey Tim, > > Wow that's an awesome idea too aka to create local branches on each machine, and then switch over the master branch to pull them in. > > Do you have any video references for this kind of thing? > > I like videos first, and then documentation. > > It would really help me out since I'd love to try to figure this kind of thing out, since I am pretty close to just using rsync for my Git notes going forward, > but needed that kind of convincing otherwise. > Sorry, no video links/references. There are lots out there, I just don't watch them. I think one of the best ways to understand git is to just use it at the command line and experiment. Git can appear daunting, but it is actually fairly easy. It has a huge number of commands and options, but 90% of the time, you really only need a very small handful. The nice thing about learning a VCS is that you can clone a repository, experiment as much as you like and when you make a mistake, try to use git to undo it, but if all else fails, blow away your copy and clone and try again. Probably the biggest complaint I see about git (or almost any VCS) is merge hell. However, this can be largely avoided with a few simple rules and some discipline in your workflow. People often get into this type of mess because they make lots of changes before committing them and because they make changes on the master branch rather than a topic branch. I almost never make changes directly to the master branch. I will create a new branch for even small changes and then merge it back into master once the changes are complete. Sometimes, I forget and realise I've made changes which should have been done in a branch. When this happens, I use the 'stash' command to stash my changes, create a topic branch and then apply the stash to that branch. If a topic branch has existed for a while and you know the master branch has diverged significantly since you made your topic branch, it can be useful to rebase your topic branch against the current master branch. This will effectively apply all the changes from master to your topic branch *before* then applying your changes. It is like you have just forked your topic branch from master. You may still get some conflicts when re-applying your branch changes, but there will typically be less and they will be easier to resolve. If your working on a project with lots of contributors, where master changes quite quickly, you may want to do frequent pulls and either merge or rebase into your topic branch. Merge conflict really only becomes a pain when there are lots of changes to all apply at once. If I'm working on a large project with lots of contributors, I might do a pull and merge or rebase into my topic branch every day (maybe multiple times per day). On a private repository, I will do this far less often because I know what has changed and when it is a good idea to merge or rebase my current topic branch. Provided some discipline is applied, I find when it comes time to merge my topic branch back into master, it is a straight forward merge with no conflicts and changes in master remain clean. It is sometimes a good idea to poke around a bit in the .git directory and get to understand what is in there and how it works. It is surprisingly simple once you understand the structure. One of the things I like about git is that it makes simple things simple and hard things possible. Sometimes, using some sort of sync software is the right solution. I regularly use rsync for a number of tasks. However, I use git and remote git services like gitlab or github for all of my projects and org notes. Some people prefer Mercurial (hg) over git. I think it is a fine VCS as well and often use it too. It has many of the same concepts and can be used in a similar manner. For some people, it sits better with the way they work/think than git. However, the core concepts are the same.