2014年7月8日 星期二

Tortoisegit + Gitosis + git in Windows 合起來用注意事項

先前在家裡的 CentOS 架了一個 Git Server ,本來只有自己用,也是很 OK。
可是最近會有不同的專案,會用到這個 Git Server。那原先的架構就不太適合了。
原先安裝好 Git 之後,是利用 git 資料夾當中,/.ssh/authorized_keys 這個檔案放入公鑰,而自己的機器上放私鑰的方法,來讓 git 可以自動登入,並且進行存取。
但是這樣設定的 Git Server ,會變成每個能夠進入的使用者,都可以對每個專案做存取。如果希望能夠依照不同的人設定不同專案的存取權限,這種設定就會有安全上的顧慮。
在網路上查詢之後,一般用來控管不同的人用不同的專案,用的是 Gitosis ,但是在 Windows 上面, 怎麼樣做 key 就是無法自動登入,都會詢問我 Server 上 git 帳號的密碼。這樣也就沒有自動辨別身分的功能了。
經過多次的嘗試,終於知道要怎麼做了,筆記如下:


  1. 先安裝好 msysGit (git for windows): http://msysgit.github.io/
  2. 下載 Tortoisegit 並且安裝,安裝時不要選 TortoisePLink, coming from Putty, 要選 OpenSSH Git defualt SSH Client。
  3. 這時候,一般的 Tortoisegit 的使用方法是利用 puttygen 產生一個 ppk ,然後讓 Tortoisegit 使用,但是在 git + Gitosis 的狀況下,我們不能用 TortoisePLink ,所以不應該這樣做。我們應該要先把安裝 Git 的資料夾位置的 bin 路徑,放入系統的 PATH 參數當中。
  4. 利用 msysGit 所帶來的ssh-keygen (在 Git 安裝資料夾當中,bin 的資料夾內) 產生 key,方法是 ssh-keygen -t rsa。
  5. 但是以上步驟會問你資料夾在何處,先隨便找個地方放。
  6. 先試著啟動 Tortoisegit ,然後建立 repo 之後,試著 push 上伺服器,這時候會失敗。但是會在 Windows 的使用者資料夾下產生一個資料夾為 【.ssh】 (例如 C:\Users\gituser\.ssh),然後把利用 ssh-keygen 產生的兩個 key 都放在這個資料夾當中。
  7. 接著就可以把 id_rsa.pub 上傳到伺服器,放到伺服器上的 keydir 並且進行設定,就可以了。




2014年6月6日 星期五

Swift 與 Xcode 6 playground 快速介紹

自從 Apple 在 WWDC 2014 宣布了 iOS / MacOS 新的開法語言 Swift 之後,網路上有多種文章在討論 Swift 的一些新東西,也有了 Wiki 。
不過我先針對一些似是而非的文章內容做更明確地介紹。

有的文章說,開發者可以看到即時輸出的結果。其實明確的說,這不是 Swift 的功能,而是在 Xcode 6 裡面,所提供的 playground 的功能。

Xcode 6 當中,提供了開發者 (更明確地說,應該是初學者) 一種體驗程式語言的方法,就是 playground。你只要在 Xcode 6 當中,開啟 playground 檔案,你就可以在左邊的程式碼視窗當中鍵入你想嘗試的程式碼,而在右邊的視窗當中,你就會看到 Xcode 自動告訴你,這個程式碼可以得到什麼結果。也可以把 Output Console 打開,你就能看到現在的程式碼會有怎麼樣的輸出。然後也可以針對某個變數,觀察那個變數對於時間的變化。

Xcode 6 的 playground 讓 Swift 的學習與教學變得更容易


以上圖來說,左邊是程式碼的區段。中間是系統告訴你這個程式碼會有怎麼樣的效果,右邊的內容是可以自己新增或者是減少的。可以看到程式碼實際執行的狀況,或者是變數的值變化的狀況。所以如果要在課堂上講解這些,有了 playground 就變得很容易了。