TrueCrypt with NTFS volumes on Mac OS X Lion

At some point I created a backup file on Windows 7 in a TrueCrypt volume container that was formatted with NTFS. I’m not sure why I originally formatted it with NTFS, but I think it was something to do with long filenames or a very deep directory nesting. Whatever. The point is, after upgrading to Lion, TrueCrypt would no longer mount this volume.

I did this several months ago, so I can’t remember what I originally did to get this setup, but apparently there’s something called MacFuse that adds support for additional filesystems, like NTFS on Mac. The version that I originally installed no longer works on Lion, so you need a different version that does – there’s a post here with a link to a version that works.

To get it working again, I uninstalled MacFuse and TrueCrypt, installed the version of MacFuse from above, reinstalled TrueCrypt, and not everything works.

Setting up Gitolite on Linux

This article has the definitive guide for setting up Gitolite on Linux from the source project from Github. I followed it step by step and what do you know, it all worked great.

To add new repos and users, pull down the gitolite-admin project from your newly created gitolite server:

git clone gitolite@your_server:gitolite-admin.git

Edit the conf/gitolite.conf file and follow the examples that are already there:

repo    reponame
        RW+ = username

Add the public key file for the user to the keydir dir (file name matching the username you just added to the gitolite.conf file, and then push back the changes:

git add . 
git commit -m "added new repos and users" 
git push origin master

To add an existing new project into the repo, cd into that project and add a new remote:

git remote add origin gitolite@your_server:project_name.git

where project_name matches a repo name that you added earlier to the gitolite.conf file.

Push it up to the repo:

git push origin master

You’re all set.

Setting up a Git server on Ubuntu, accessing from Mac OS X

This wiki post walks you through the key steps configuring a Git server on Ubuntu.

Edit 4/3/12: there’s a lot of other articles on how to setup gitosis on linux – here’s some I followed, but they all have slight variations in the approach: here, here, and here. It seems somewhat hit and miss whether it works or not (as you’ll find if you google for related articles). For me, I could only get this approach working for the user in the gitosis-admin group, and I could not get access for any other users, despite how many variations of the setup instructions I worked through. There’s numerous comments that gitosis is also no longer supported and to use gitolite instead, so I’m going to try installing gitolite instead and will write another post on using this approach . See here for my notes on setting up gitolite, which by the way I got setup with no issues at all.

The setup steps in the wiki article walk you through setting up a gitosis user through which you connect using an ssh public key – since I was trying to follow the instructions but not really sure what I was doing, the key steps (once you’ve already done the above setup) are:

  • if you already have an ssh public key, copy it to your remote server and then add it for the gitosis user with this step:
sudo -H -u gitosis gitosis-init < your.pub_file

If you don’t have a .pub file in your ~/.ssh dir, create one with the steps here. This step is only done one time, for your admin user to get the gitosis-conf project setup.

To add new projects and users is via the gitosis-admin project which you clone from your new server. Once you’ve pulled the project local, all admin of adding new projects is done via making changes to the gitosis.conf file and then pushing the change back to the server.

To add a new group/team add a new section like this:

[group group_name_here]
members = dev1@host1 dev2@host2 dev3@host3
writable = Project1 Project2

Notice the members and writable list of source project are space separated, not comma.

For each new user, add their .pub ssh file to the gitosis-admin/keydir directory, named user@host.pub, where user@host matches their id and host at the end of the key details in the file.

Add, commit and push them to the server:

git add .
git commit -m "added new key files"
git push

To push a new project for the first time, eg’Project1′

  • cd into the project you’re adding for the first time and add your remote:
git remote add origin gitosis@your_server_name:Project1.git
  • Add, commit and then push your code on the master branch:
git add .
git commit -m "commit message"
git push origin master

Subsequent pushes, you can just do ‘git push’