Published on
January 21, 2010 in
工具 and 電腦技術.
Tags: Git.
一般來說,要修改最近一次的 commit,常見的方式有:
- git revert & git commit:這個方式很直覺,直接 revert 回上一個版本,然後重新 commit,不過因為 revert 會連這次 commit 中的記錄也消掉,這樣太麻煩了,我只是想改個 commit message 而已啊!XD
- git commit –amend:這個可以直接翻譯成”重新修改最近這次 commit”,其相當於
$ git reset –soft HEAD^
$ … do something else to come up with the right tree …
$ git commit -c ORIG_HEAD
然而,對於要修改較舊的 commit,上面的做法可能就不適用了,據我所知目前的做法有兩種,第一種是使用 git rebase:
git rebase –interactive <after-this-commit-id>
這樣會跳出介面讓你選擇想要修改的 commit,選擇完畢後,會由舊到新依序停在每個你所選擇的 commit,然後利用
git commit –amend
來修改該次的 commit,再搭配
git rebase –continue
來繼續下一個選擇的 commit。這種做法很方便,也可以快速地達到目的,因為是用 rebase,修改 commit message 倒是還好,如果有修改到 content,可能就要注意一下 conflict & merge 的問題了。另外,這個方式對某個我試的結果,對於修改 first commit 會沒輒。這時候可能要使用另一種比較麻煩的做法了。
第二種做法是利用一個由要修改的 commit 產生一個 target commit (在另一個 branch 中),同樣搭配 git commit –amend 來修改,最後利用 git rebase 來覆蓋原本的 commit:
# tag the source commit so we can reference it
git tag source-commit <source-commit-id>
# checkout on its own branch
git checkout -b fake-branch source-commit
# amend the commit
git commit –amend
# after you changed the commit message, checkout the original branch
git checkout <original-branch>
# and rebase it onto the source commit
git rebase –onto fake-branch source-commit
# then nuke the temporary branch and tag we created
git branch -d fake-branch
git tag -d source-commit
就看情形使用了,大部份還是用第一種做法,不過一開始就把 commit message 寫好最省事 XD
Published on
January 21, 2010 in
兩光生活.
Tags: QA.
在公司,我的 mentor 是個很 nice 的人,沒有架子、待人和氣,從他的做事方式讓我學到不少東西。
今天和許多資深的 QA 前輩請教了 L10N 相關的 testing 和敲 tracker 的方式,前輩們教了我很多做法和針對不同情況的處理方式,讓我獲益良多,我也認為單純地這樣分類然後去敲就沒問題了。後來,跑去和我的 mentor 討論了一下,他的回答讓我忽然有種當頭棒喝的感覺,他說:「這樣一次大量敲下去會不會讓 RD 很頭大?或許我們可以換一種方式來敲,讓 RD 可以檢視所有的問題,同時也能夠兼具 tracker 的功用」,他的這番話讓我感受到他是真的努力在幫忙 RD 解決問題,而不是只單方面地回報問題而已。
今天讓我學到了一課,鑽研技術固然重要,但態度和做事的方法更是需要學習的。
I’ve started to use Windows 7 as working desktop OS. When I try to use vSphere Client to connect to ESX Server, it just gives me errors like
Error parsing the server “<server name>” “clients.xml” file.
and
The type initializer for ‘VirtualInfrastructure.Utils.HttpWebRequestProxy’ threw an exception.
After googling, I get some solution. With a little modification from Pank’s patch, it works fine now.
P.S. The newer version 2.0.50727.4927 of system.dll seems not work, so that’s why to pack version 2.0.50727.3053.
接觸 FreeBSD 也算有蠻長的一段時間了,不過以前的我對 FreeBSD 沒有很深入的了解,上研究所前的暑假到 Y! 實習,也開始慢慢地熟悉 FreeBSD,那時候遇到了很多長輩,rafan 也是那時候進 Y! 的,不過第一年和 rafan 沒有太多交集,只知道他是 Ports Committer 之一,那時候就覺得:「哇!真厲害!」。
後來上了研究所,也進了 NCTU CSCC 當助教,在這裡接觸到了很多強者,還記得 liuyh 要 BSD team 多看 Porter’s Handbook,剛好另一位 Ports Committer – lwhsu 也在系計中,那時候我就覺得自己好弱,應該趕快練實力,希望自己有一天也能成為 Ports Committer,lwhsu 要我先練習 send-pr(1) 和 Tinderbox;我也常拿 csports 來練習 XD,DK 大神也幫我收了不少爛攤子。就在那時候送了第一個 PR,不只重複送,Maintainer 還寫錯 orz。
研一的暑假又回到 Y! 當實習生,這個暑假因為實習內容的關係,和 rafan 變得比較熟了,也慢慢從他那邊知道 Ports 的架構和其他有趣的事,還記得 rafan 跟我講:「想當 Ports Committer,先 send 100 個 PR 來再說!」,所以程式寫到很煩的時候就會開 portscout.org 看有沒有什麼 ports 要更新的,PR 數也是這時候不斷地增加,不過 PR 的品質也很差 XD。
研二上算是 PR 送得最勤的時候,那時候常常有事沒事就送,不清楚的就問 lwhsu,不管是更新還是有錯,反正 PR 不用錢嘛!XD 隨著數目增加,也慢慢知道要注意哪些東西,不會送出一些好笑的 PR 了 (還曾經被 pav@ reject XD)。後來,就被懲罰了。
最要感謝的是我的 mentor – lwhsu,雖然我 on board 第一天就出包 XD,不過總算是踏出第一步了,接下來還請許多前輩們多多照顧小弟了。
Published on
June 17, 2009 in
Asides.
Blog 停水了一陣子,最近都在忙論文的東西,其實寫得差不多了,口試日期也決定了,剩下的就是好好地為學生生活劃下一個完美的句點 (還有把該還的債還一還 XD)。其實來交大這兩年應該算是我活二十幾年來學到最多東西的一段時間吧!在這邊遇到很多高手和貴人,系計中真是臥虎藏龍,真的要感謝很多人,就趁所剩不多的這段時光,再多糟糕一下吧!XD
接下來就要進入職場了,算是進到人生的另一個不同的階段,也請各位前輩們多多照顧了。:)
(0)
工三的垃圾筒都是放在廁所旁的樓梯口角落,經過的時候偶爾會看到一個負責清理這些垃圾筒的阿姨,在我的以往的印象中,看到不少清理垃圾筒的人對待週遭的人不是很友善,不然就是有點冷淡不太想理人;但是這位阿姨對週遭的人態度都很好,我現在經過都會跟她打聲招呼。
不知道為什麼,明明垃圾筒上的紙條寫得很清楚要分類,總是有很多人看也不看就隨便亂丟,每次都看到阿姨整理得很辛苦,雖然總是有分不完的垃圾,但這位阿姨的態度還是很好,我遇過不少邊整理邊罵的人。這些努力付出勞力的人,每天都很盡責地做好自己的事,也許他們的工作不能舒舒服服地坐在冷氣房,也許他們的工作常搞得全身騷臭不堪,但我覺得多歸了他們,這個社會多了一分人情味,在我心中,他們的職業是很值得人尊敬的,這比一大堆高文憑卻連基本的垃圾分類都做不好的人來得更值得敬重。
下次丟垃圾的時候多想想,做好分類花不了你一分鐘,卻可省下他們不少時間。
(1)
在系計中的小分享,這次著重在開發環境和 Plugin,蠻多部份沒有在 Slides 點出來,而是用口頭講述的,也有很多東西來不及準備完所以就沒講了,不過這種東西還是實際去玩學得比較快,也比較容易了解原理。:P
Published on
February 24, 2009 in
兩光生活 and 音樂誌.
Tags: Music.

Corrinne May - Safe in a Crazy World
Corrinne May (中文名:符美云) ,新加坡女歌手,發行過四張專輯,在台灣其實沒多少人認識她,畢竟她有在台灣上市的專輯僅僅只有第一張 “Fly Away” 及最近的一張 “Beautiful Seed”,也許她不像時下的流行歌手般令人印象深刻,但聽過一次她的嗓音,會讓人難以忘懷。
第一次聽到她的歌聲是在網路上,忘記是哪了,只聽背景傳來 “Beautiful Seed” 專輯中 “Love Song for #1″ – “In the twinkling starts that dance like fireflies…”,很舒服的聲音,現在唸書都會放她的歌來聽。
四張專輯:
- Corrinne May (Fly Away)
- Safe in a Crazy World
- The Gift
- Beautiful Seed
我最喜歡的是”Safe in a Crazy World” & “Beautiful Seed”這兩張專輯。:)
P.S. 某人抱怨我都只發表技術性的文章 XD
Published on
December 22, 2008 in
工具 and 電腦技術.
Tags: python.
Python 本身的 Interactive Mode (Shell) 其實對於測試一些小功能和 debug,都蠻有用的,不過它的功能一直讓我覺得很陽春,尤其是 Tab Completion,我一直以為沒有實作這個功能,後來在 “Python for Unix and Linux System Administration” 這本書看到原來可以手動打開這個功能:
>>> import rlcompleter, readline
>>> readline.parse_and_bind('tab: complete')
這樣便可以使用 Tab Completion 的功能了,結果大致上會是:
>>> import os
>>> os.lis<TAB>
>>> os.listdir
>>> os.li<TAB><TAB>
os.linesep os.link os.listdir
雖然有了基本的 Tab Completion 功能,但說真的,還是挺不習慣 Python 原本的 Shell,後來都改用 IPython 了,比原本的 Python Shell 強大很多,重點是…它會自動 Indent,我不用再按<TAB>按到死了。
最近看到一個 Firefox Extension “vimperator“,我只能說,這個東西真是太棒了,尤其對我這種 VIM 重度使用者來說,真是一大福音啊!
看了一下官網的說明,大部份的常用指令都有實作,而且一裝完介面瞬間感受得到有種 VIM-Style,官網還有 Tips & Tricks 專區,不過目前看來數量沒有很多,google 一下應該可以找到更多人的使用經驗,也有些人直接把設定放出來。
現在正在探索它的設定,畢竟跟原本的 VIM 還是有些許不同,對於網頁瀏覽方面應該會有一些對應的設定和功能以增加方便性。有心得再 post 出來。
Recent Comments