From: Samuel Wales <samologist@gmail.com>
To: emacs-tangents@gnu.org
Subject: Re: diff-mode merge tool for e.g. filesystem trees
Date: Sat, 3 Sep 2022 22:15:59 -0700 [thread overview]
Message-ID: <CAJcAo8us0Ha-7vh_L+Y_rfa8cBbVhdhn9cBVPWLBTwN0KM28LA@mail.gmail.com> (raw)
In-Reply-To: <CAJcAo8s7_Lu-9Ah=kA8b6AL7LrSvT9KwU7WvKpLT1rOV_WVQNQ@mail.gmail.com>
and i discovered the name just after pressing send.
the thing i recall is probably diffsync.el. it is very different from
my design.
On 9/3/22, Samuel Wales <samologist@gmail.com> wrote:
> i seem to recall a package flew by that merges files using diff mode.
> i can't seem to find it anywhere. anybody recall?
>
> i was interested because i once designed a filesystem tree differ and
> thought perhaps the new package could too.
>
> i vaguely recall that both the new package and my design use the diff
> gutter for marks. both view fs trees as text.
>
>
> p.s. fwiw, here are my notes on /my/ design. i don't know the new
> package.
>
> for unrelated reasons i cannot implement this. just a design.
> anybody is very welcome to of course.
>
> ===
>
> pathnames are after the first tab. metadata can be
> displayed before the first tab.
>
> for example:
>
> "---rw-r--r--,34668 ./boot/grub/gcry_camellia.mod"
> "+--rw-r--r--,5 ./boot/grub/gcry_camellia.mod"
>
> you can perform operations.
>
> operations only apply to the b tree. that is, unlike most
> mergers, we are not trying to modify a, but instead make b
> perfect.
>
> ===
>
> operations on dirs will apply to everything under them also.
> operations on - or + will apply to the opposite also.
>
> - k :: dim with `'
> - ' :: delete dimmed and context
> - \ :: ediff -+ using my algo
>
> - d :: mark delete in b
> - e :: mark ediff a b files
> - c :: mark copy a to b
>
> - u :: unmark
> - U :: unmark
>
> - x :: execute
> - s :: put a shell script in a new buffer
>
> advanced:
>
> - t :: dim stuff underneath (act as a truncating differ
> like diff -ur)
> - ? :: dim not in both
> - ? :: dim all in both
> - ? :: reduce dirname (see command)
> ********* REF use case: merging a SUBSET into an older full fileset
>
> this is an example of a problem we are trying to solve using
> these merging capabilities.
>
> ===
>
> suppose you back up your computer nightly. but the backup
> drive is too small, so you only backup a SUBSET of your files.
>
> then your computer crashes. you start running from SUBSET.
> you do not have access to your ORIGINAL (a.k.a. the FULL
> FILESET) because ORIGINAL is on internal drives that cannot
> be physically extracted.
>
> you make a lot of changes to what started out as SUBSET.
>
> you finally get access to ORIGINAL. now merge SUBSET into
> ORIGINAL so that you get full set of files with your
> changes. this is the problem we try to solve.
>
--
The Kafka Pandemic
A blog about science, health, human rights, and misopathy:
https://thekafkapandemic.blogspot.com
next prev parent reply other threads:[~2022-09-04 5:15 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-09-04 5:06 diff-mode merge tool for e.g. filesystem trees Samuel Wales
2022-09-04 5:15 ` Samuel Wales [this message]
2022-09-04 6:15 ` Emanuel Berg
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=CAJcAo8us0Ha-7vh_L+Y_rfa8cBbVhdhn9cBVPWLBTwN0KM28LA@mail.gmail.com \
--to=samologist@gmail.com \
--cc=emacs-tangents@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).