Coder Social home page Coder Social logo

dotfiles-1's Introduction

This is my HOME, including shell environment, vim
configuration, and other misc dotfiles and scripts.

Have fun.

BACKGROUND

I've received a few emails inquiring as to how this
repository is managed and how I intend for others to use
it. There's multiple techniques for keeping a home
directory under version control -- I'll try to lay out my
goals and strategy here.

First, a few things I'm not trying to accomplish: I don't
use this repository to distribute or sync my common files
between multiple machines (that's what the ~/bin/sync-home
script is for). I also don't intend to use this repository
as a source of backup -- I have a separate incremental backup
and snapshotting tool for that.

This repository exists mainly so that I can publish my
environment and misc scripts, since I often find myself
referencing them in conversations, email, IRC, blog posts,
etc. I also like having a proper annotated change history
for these files when things break.

I don't suggest using this as some kind of prefab home
environment (although that's certainly possible). Look
through the stuff and take what you find useful with copy
and paste or by copying specific files and directories
into your own home - such is the tradition of UNIX home
directories.

TECHNIQUE

My home directory is a real git work tree. The repository
data is stored in ~/.git. Some people like to keep the
actual work tree somewhere else and symlink files into
their home. I don't do that.

One issue with this approach is that 'git status' can be
overly noisy, since most files are not tracked and show up
as "other" files. I get around this by ignoring all files
that I haven't added explicitly -- this is as simple as
adding a "*" line to the ~/.git/info/exclude file.

Another issue is how best to handle machine specific or
sensitive information (usernames / passwords, API keys,
etc.) included in dotfiles. I simply do not add any files
to the repository unless they're "clean". In some cases,
that means not adding stuff that I'd otherwise like to
have tracked. For example, I'd like to publish my
~/.gitconfig file but it contains my secret github API
key.

In other cases, I've built up systems for dealing with
this issue specifically. My ~/.bashrc file is machine
generic but sources an ~/.shenv file (untracked) if it
exists. This lets me separate machine-specific and
sensitive information from stuff I want to publish. If I
can figure out how to include a ~/.gitconfig-private or
some such file into ~/.gitconfig, I'll start tracking the
non-sensitive stuff under the repository as well.

COPYING

I didn't write all of this stuff, or even most of it.
I've tried to include proper attribution and info on
distribution and licensing in each of the file's I
found elsewhere. Please contact me if you see something
not so attributed.

# tomayko.com/about

dotfiles-1's People

Contributors

rtomayko avatar ydnar avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.