聚會時間公告: 因應COSCUP 2011, Kalug 8月份休會一次

十月 23, 2011

小惡魔AppleBOY
AppleBOY
is about »

tag cloud

» Github 支援 SVN Client

Github 一年前宣佈開始支援 SVN Client,不過這是必須透過 https://svn.github.com 才可以取得資料,跟一般 git 的網址不一樣,然而就在最近宣佈了同步支援 svn 也可以存取 https://github.com/,並且過不久的將來會移除 https://svn.github.com/ 網域。

URL 處理

git 方式:

$ git clone https://github.com/appleboy/PHP-CodeIgniter-Framework-Taiwan git-ds
Cloning into git-ds...
remote: Counting objects: 4177, done.
remote: Compressing objects: 100% (665/665), done.
remote: Total 4177 (delta 3544), reused 4140 (delta 3509)
Receiving objects: 100% (4177/4177), 2.65 MiB | 239 KiB/s, done.
Resolving deltas: 100% (3544/3544), done.

svn 方式:

$ svn checkout https://github.com/appleboy/PHP-CodeIgniter-Framework-Taiwan svn-ds
A    svn-ds/branches
A    svn-ds/branches/develop
A    svn-ds/branches/develop/README
A    svn-ds/branches/develop/changelog.html
A    svn-ds/branches/develop/index.html
A    svn-ds/branches/develop/license.html
.......

官網還陸續介紹了 svn 如何在 github 上面的使用,如果對 svn 熟悉的朋友們我想也不陌生了,還沒熟悉 git 之前,我想可以先用 svn 玩 github 功能。底下是 github 打算將來支援的 svn 功能

  • 支援 branch merging 和 rebasing
  • better mapping of Subversion <=> GitHub user names in commits
  • 支援 annotate/blame
  • 讓 trunk 可以對應到 git branch 除了 master 之外

參考:
Improved Subversion Client Support

Related View

九月 27, 2011

小惡魔AppleBOY
AppleBOY
is about »

tag cloud

» 版本控制 svn move 移動或更名

公司採用 svn 當作版本控制,而我最近在整理 svn 上面全部的 source code。基本上我都會將 git 跟 svn 也一起搭配著用,因為個人比較熟悉 git 的操作方式,然而跟同事討論了專案目錄的架構,進而要把一些目錄轉換大小寫,本來的 App 就改成 app,這個在 git 底下(OS: Linux)操作非常容易,直接 git mv App app,之後看 git status 可以發現底下輸出:

# On branch develop
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#       renamed:    nav/hacks.txt -> Nav/hacks.txt
#       renamed:    nav/moo.fx.js -> Nav/moo.fx.js
#       renamed:    nav/moo.fx.pack.js -> Nav/moo.fx.pack.js
#       renamed:    nav/nav.js -> Nav/nav.js
#       renamed:    nav/prototype.lite.js -> Nav/prototype.lite.js
#       renamed:    nav/user_guide_menu.js -> Nav/user_guide_menu.js
#

可是在 svn 的流程不是這樣喔,首先 svn 會將原本的目錄先刪除,再來新增一個新目錄。這樣就算了,在 Windows 底下還不讓你這樣操作,請先裝 Subversion Client,然後請在”開始”->”執行” 打入 cmd,可以透過 svn mv 方式來操作

svn mv App app2
svn mv app2 app

如果裡面檔案目錄又很多的話,那就有的等了,畢竟對於 svn 而言都是在複製檔案,而不是像 git 是紀錄檔案差異。

Subversion的搬移(Move)操作

Related View

五月 20, 2011

小惡魔AppleBOY
AppleBOY
is about »

tag cloud

» 版本控制 version control git clean 使用時機

在做公司的每一個案子,我都會使用 git 來做版本控制,雖然公司只有用 svn 控管,但是只要網路掛掉,就不能做任何事情了,更不用說 svn Server 掛點,因為 git 開 branch 免錢,因此每當我拿到新案子就按照 Git 版本控制 branch model 分支模組基本介紹 開了固定幾個 branch,由於剛開始 git init 沒有把 .gitignore 寫好,所以 commit 了一堆 *.o 或者是 *.ko 類似的檔案,我用了 git rm –cached 方式砍了,結果在切換 branch 的時候出現底下錯誤訊息:

error: Untracked working tree file ‘XXXXXXXX’ would be overwritten by merge.

這是因為當你 git rm –cached 檔案之後,切換 branch 時候會遇到衝突,本來的 master 分支還是存在這些檔案阿,因此這時候就要靠 git clean 來清掉移除檔案,可以利用 git help clean 來查看使用手冊。

Ref:
Force git to overwrite local files on pull.

Related View

五月 4, 2011

小惡魔AppleBOY
AppleBOY
is about »

tag cloud

» svn 恢復略過衝突檔案 (conflict file)

當我們利用 svn up 更新程式碼,如果遇到修改相同檔案的相同地方,就會發生衝突 (conflict) 此時就必須修改或者是略過,當選擇略過此檔案就會出現底下訊息

Skipped ‘lib/logs/logDB.txt’
Skipped ‘lib/confs/Conf.php’
At revision 912.
Summary of conflicts:
Skipped paths: 2

之後怎麼用 svn up 更新檔案,都會因此被略過,那該怎麼恢復被略過檔案的狀態,讓它們可以繼續被更新呢?網路上找到一篇 svn local obstruction, incoming add upon merge 解法,用 svn resolve 來解決問題,只要針對該檔案打入底下指令即可

svn resolve --accept working lib/confs/Conf.php
svn resolve --accept working lib/logs/logDB.txt

Related View

support:

biggo.com.tw

A Django site.