X-Git-Url: https://git.madduck.net/code/myrepos.git/blobdiff_plain/4eb2cd7eadf0f70bf0e88d2356bff037314885ff..59260c55beafe7096bae16359588eb89ff90d0e3:/lib/gitless diff --git a/lib/gitless b/lib/gitless deleted file mode 100644 index 20c2e5e..0000000 --- a/lib/gitless +++ /dev/null @@ -1,45 +0,0 @@ -# This adds a special type of git repository, where the .git directory -# is stored on a file server, to avoid wasting space with it on the client. -# One example use is storing a music collection in git, where you can spare -# the extra space needed for .git on your file server, but not on your -# laptop. This fills basically the same niche as unison. -# -# To make mr use this file, add a line like this inside the [DEFAULT] -# section of your ~/.mrconfig -#include = cat /usr/share/mr/gitless -# -# And an example repo using it would look something like: -#[lib/sound] -#checkout = gitless_checkout turtle /media/turtle/home/joey/lib sound -# -# In this example, the file server's hostname is "turtle", -# and it's mounted on /media/turtle. The file server contains a sound.git -# repository in the specified directory under that mount point. -# When mr checks out that repository, it will create a sound.hostname -# directory on the server, containing just the .git directory, and symlink -# the client's .git directory to it. After checkout, normal git and mr -# commands can be used, as long as the file server is available. - -lib = - gitless_checkout() { - server="$1" - remotebase="$2" - dir="$3" - hostname="$(hostname)" - if [ "$hostname" = "$server" ]; then - git clone "$dir.git" "$dir" - cd "$dir" - else - if [ ! -d "$remotebase/$dir.$hostname" ]; then - git clone --shared --no-checkout "$remotebase/$dir.git" "$remotebase/$dir.$hostname" - fi - mkdir -p "$dir" - cd "$dir" - ln -sf "$remotebase/$dir.$hostname/.git" - git reset --hard - fi - - # disable auto gc, because it breaks repo hard links, - # and is not smart to run over a networked filesystem - git config gc.auto 0 - }