[Discuss] Moving Your Everyday System to New Hardware

Dan Ritter dsr at randomstring.org
Tue Sep 3 07:08:25 EDT 2024


Bill Bogstad wrote: 
> On Wed, Aug 28, 2024 at 12:43 PM Daniel Barrett
> <dbarrett at blazemonger.com> wrote:
> 
> > I do something similar but slightly more automated. I use git to
> > capture every change I make to system files. Basically, I initialize a
> > git repository in (say) ~/SystemChanges and create a duplicate, sparse
> > directory structure containing all the changed files. So if I update
> > /etc/apache2/foo.config, I copy it to ~/SystemChanges/etc/apache2/foo.config
> > and "git commit." When it comes time to migrate to a new machine, I can
> > recreate all needed changes to system files within a few hours. I also reap
> > the benefits of versioned changes to individual system files.
> >
> > The only tricky bit is preserving file owners & permissions, but they
> > are present in the original files.
>  [late to the party]
> 
> It sounds like you are doing something like the etckeeper system:
> 
> https://etckeeper.branchable.com/
> 
> It handles things like file permissions pretty well.   One downside is
> that as far as I know it only handles files in /etc.
> It would be nice to use it more generically to manage configuration
> files on other directories.

To bring it right back around to Daniel's point: that's what git
is for. etckeeper is a wrapper around git that hooks into the
packaging system to auto-commit when the packaging system makes
changes, but if you want that functionality without the
packaging system hooks, that's git with a local secondary repo.

-dsr-


More information about the Discuss mailing list