git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: /etc in git?

From
Junio C Hamano <junkio@cox.net>
Date
Jan 19, 2006, 05:05 UTC
Message-ID
<7v64ogkdtu.fsf@assigned-by-dhcp.cox.net>
In-Reply-To
<b476569a0601182040w581b72b7xbb99845da4085646@mail.gmail.com>
Adam Hunt <kinema@gmail.com> writes:
> Do you have any more details by chance?  Does it work?  Does it work
> well?  How does one do it?

I personally feel it is a horrible and stupid thing to do, if by "version control /etc" you mean to have /.git which controls /etc/hosts and stuff in place. It would work (git does not refuse to run as root). But being a *source* control system, we deliberately refuse to store the full permission bits, so if your /etc/shadow is mode 0600 while /etc/hosts is mode 0644, you have to make sure they stay that way after checking things out.

You are much better off to keep /usr/src/rootstuff/.git (and working tree files are /usr/src/rootstuff/etc/hosts and friends), have a build procedure (read: Makefile) there, and version control that source directory. I usually have 'install' and 'diff' target in that Makefile, so that I can do this:

	$ cd /usr/src/rootstuff
        $ make diff ;# to see if somebody edited any targets by hand
	$ edit etc/hosts
	$ git diff ;# to see the source change
        $ make diff ;# to see the change I am going to install
        $ su
        # make install; exit
        $ git commit -a -m 'Add a new host.'

Being able to run "diff" before actually doing it is very handy and useful safety/sanity measure.

Obviously, /usr/src/rootstuff/ should be mode 0770 or stricter, owned by the operator group; it would contain some sensitive information.

Previous: H. Peter AnvinNext: Ryan Anderson
Message 5 of 16 in “/etc in git?”
  1. Adam HuntJan 19, 2006
  2. Junio C HamanoJan 19, 2006
  3. Adam HuntJan 19, 2006
  4. H. Peter AnvinJan 19, 2006
  5. Junio C HamanoJan 19, 2006
  6. Ryan AndersonJan 19, 2006
  7. Junio C HamanoJan 19, 2006
  8. Support precise tracking of file modesPetr Baudis, Jan 19, 2006
  9. Junio C HamanoJan 19, 2006
  10. Petr BaudisJan 19, 2006
  11. Alex RiesenJan 20, 2006
  12. Peter BaumannJan 20, 2006
  13. Ryan AndersonJan 20, 2006
  14. Junio C HamanoJan 20, 2006
  15. Joel BeckerJan 19, 2006
  16. Daniel BarkalowJan 19, 2006

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.