# What version control do you use for your dotfiles? Or do you not use one at all?



## yaslam (Dec 8, 2022)

I have had my dotfiles in git version control for a while now, sometimes I find git annoying when I want to experiment with things, it is sort of a barrier to that, and I find that when my dotfiles are in any kind of version control system, I have an urge to constantly commit any small changes I make which is not good imo.

So I want to ask, who here uses version control / doesn't use version control for their dotfiles here, and what are your opinions on using a version control for something that is usually experimented with daily.


----------



## Cthulhux (Dec 8, 2022)

I use Fossil for my _dotfiles_ (= configuration files), at least for those which I want to use on more than one computer. Using Git for single files is ridiculous in my opinion. As even my GNU Emacs configuration (which I tamper with almost every week) is not subject to daily changes (anymore?), constantly committing is not required. Even if it was, GNU Emacs's _vc-fossil_ package makes it easy anyway.

I do, however, *not* use Fossil for configuration files which contain passwords and other access data - those are stored elsewhere, because I am _not_ interested in accidentally leaking them.


----------



## yaslam (Dec 8, 2022)

Cthulhux said:


> I use Fossil for my _dotfiles_ (= configuration files), at least for those which I want to use on more than one computer. Using Git for single files is ridiculous in my opinion. As even my GNU Emacs configuration (which I tamper with almost every week) is not subject to daily changes (anymore?), constantly committing is not required. Even if it was, GNU Emacs's _vc-fossil_ package makes it easy anyway.
> 
> I do, however, *not* use Fossil for configuration files which contain passwords and other access data - those are stored elsewhere, because I am _not_ interested in accidentally leaking them.


Great, I personally use Magit inside Emacs to manage my dotfiles, which is not built-in to Emacs.
Recently, I discovered `git stash` which lets you "hide" uncommitted changes when you are about to pull from a repo etc.. which has helped me alot and let me experiment more without having as much urge or be in a rush to commit changes, now I usually do batch commits of multiple files when I'm in the mood for it.

But, I still feel that not using a VCS makes you feel like you aren't as "trapped" I guess? My dotfiles repo is private so I'm not under any pressure to make nice commit messages or anything or keep sensitive information elsewhere, but I still do feel like there is some kind of obligation for nicer commit messages with a VCS, in a way, I guess it keeps the quality of the dotfiles repo higher.


----------



## Cthulhux (Dec 9, 2022)

yaslam said:


> Great, I personally use Magit inside Emacs to manage my dotfiles, which is not built-in to Emacs.



From what I can see, Magit sounds like unnecessary feature bloat to me.




yaslam said:


> I guess it keeps the quality of the dotfiles repo higher.



Writing commit messages lets you think about the usefulness of what you did, but it is important to remember that they are _not_ quite as important as the files themselves ...


----------



## yaslam (Dec 9, 2022)

Cthulhux said:


> From what I can see, Magit sounds like unnecessary feature bloat to me.
> 
> 
> 
> ...


Magit may have alot of features but it is really easy to find what you want to do in the moment, if you want to commit something, you would do `c c` to commit, or another example is `c a` to amend a commit, also `P u` to push to origin or `P e` to push elsewhere, but I'm not trying to make you use it, I personally haven't even tried what Emacs already had built-in lol. I think it's called `vc` right?

Yeah, very true, commenting files is also important.


----------



## yaslam (Dec 9, 2022)

Also, for stashing, you would do `z z`, and to pop the stash you would do `z p`.


----------



## Cthulhux (Dec 9, 2022)

yaslam said:


> if you want to commit something, you would do `c c` to commit



Basically, that's similar to how `vc-mode` (yes, that's the built-in one - it also supports Git AFAIK) works, except that it's _even easier_: `C-x v v` performs the "most logical" next action, so all it takes to push a new change (which was just saved) to Fossil, SCCS, Git and whatever  is pressing `C-x v v` twice.


----------



## yaslam (Dec 9, 2022)

Cthulhux said:


> Basically, that's similar to how `vc-mode` (yes, that's the built-in one - it also supports Git AFAIK) works, except that it's _even easier_: `C-x v v` performs the "most logical" next action, so all it takes to push a new change (which was just saved) to Fossil, SCCS, Git and whatever  is pressing `C-x v v` twice.


Nice, I might try it someday.


----------



## Alain De Vos (Dec 9, 2022)

I use zfs snaphosts...


----------



## facedebouc (Dec 9, 2022)

I am still using devel/cvs


----------



## cmoerz (Dec 9, 2022)

facedebouc said:


> I am still using devel/cvs


Out of curiosity - what keeps you from moving to git? Convenience, stability, sticking with the known, ...?
Functionality wise, I assume this works just the same as git or svn?


----------



## kpedersen (Dec 9, 2022)

Another CVS guy here.

The main reason for me is because CVS doesn't generate large opaque database files in the bare repos. With CVS, I can read and understand the raw data many years down the line unlike if the binary format of Git has breaking changes (This happened to me once with Subversion and it was a bit inelegant to have to track down / maintain the latest version just before the change and update the format through that without being able to verify).

Likewise with a lack of large databases (these can grow to 100MB+), with CVS, the data is still just small plain text files, so I can also commit these repos themselves to GitHub, Bitbucket and GitLab as part of a free backup strategy. Often these guys have 100MB limits per file which CVS gets around.

I really like the workflow and functionality of Git (I have had to write scripts around my CVS to make it more sane in some areas). However I much prefer the simple file format for CVS, and to me this is more important.


----------



## facedebouc (Dec 9, 2022)

cmoerz said:


> Out of curiosity - what keeps you from moving to git? Convenience, stability, sticking with the known, ...?
> Functionality wise, I assume this works just the same as git or svn?


Don't need more, it works for me.
In our laboratory we used CVS for long time and it already saved our ass.
If I'm not wrong, OpenBSD devs are still using it too.


----------



## Cthulhux (Dec 9, 2022)

They are.


----------



## Alain De Vos (Dec 9, 2022)

I use mariadb instead of mysql, dependencies,

```
akonadi: 22.08.1
akonadi-contacts: 22.08.1_1
akonadi-mime: 22.08.1
apache24: 2.4.54
apr: 1.7.0.1.6.1_2
armadillo: 11.4.0
arpack-ng: 3.8.0
cacti: 1.2.22
calligra: 3.2.1_43
calligraplan: 3.3.0_2
coq: 8.6_12,3
dovecot: 2.3.19.1
emacs: 28.2,3
frei0r-plugins: 1.8.0_1
frei0r-plugins-opencv: 1.8.0
gdal: 3.5.1_5
giacxcas: 1.9.0.21_1
glpk: 5.0
hplip: 3.22.4
kaccounts-integration: 22.08.1
kdenlive: 22.08.1
kf5-purpose: 5.98.0_2
ksanecore: 22.08.1
libdbi-drivers: 0.9.0_6
libksane: 22.08.1
libreoffice: 7.4.2.3
mailutils: 3.15_1
mariadb106-client: 10.6.10
mariadb106-server: 10.6.10
mlpack: 3.4.2_3
mlt7: 7.8.0_2
mlt7-glaxnimate: 7.8.0_2
mlt7-qt5: 7.8.0_2
mod_php80: 8.0.25
mpich: 3.4.3
net-snmp: 5.9.1_1,1
ntopng: 5.4.d20220812,1
okular: 22.08.1_1
opencv: 4.6.0_1
openshot: 2.6.1_1
opensmtpd-extras: 6.7.1,1
opensmtpd-extras-table-mysql: 6.7.1,1
php80-extensions: 1.1
php80-snmp: 8.0.25
pure-ftpd: 1.0.51
py39-libopenshot: 0.2.7_4
py39-mysqlclient: 2.1.1
qt5-sqldrivers-mysql: 5.15.5p165
sane-backends: 1.1.1_9
scalapack: 2.1.0
serf: 1.3.9_6
shotcut: 22.06.23
simple-scan: 42.5
skanlite: 22.08.1
slurm-wlm: 20.02.7_2
spine: 1.2.17
xsane: 0.999_6
akonadi: 22.08.1
akonadi-contacts: 22.08.1_1
akonadi-mime: 22.08.1
calligra: 3.2.1_43
calligraplan: 3.3.0_2
kaccounts-integration: 22.08.1
kdenlive: 22.08.1
kf5-purpose: 5.98.0_2
mariadb106-server: 10.6.10
okular: 22.08.1_1
```


----------



## cracauer@ (Dec 9, 2022)

Still using CVS.

Git seems like overkill, I don't even use branches. And I would constantly forget to push after commit 

But as mentioned above, git isn't that foolproof. The "I did something odd and now my git tree is messed up somehow" does happen every now and then. In CVS you can directly manipulate the ,v files, not that I ever had to.


----------

