Git 用了一段時間,常常遇到要調整 .gitignore 忽略自動產生的檔案,
當專案多了之後就會覺得不知道有沒有什麼範本可以使用,
馬上發現 GitHub 有個 gitignore 專案專門收集各種 .gitignore 範本。
https://github.com/github/gitignore
接下來想到的問題是,雖然一開始可以用範本,但是之後修修改改又不一致了?
有沒有什麼好的方法呢?直覺是能不能分開成多個 gitignore 檔案呢,
可惜,Git 不支援也不建議。
還好在 StackOverFlow 有網友提出合併檔案的方法,這樣就可以實踐了!
在 git 根目錄下建立一個 gitignore 目錄,然後將範本放進去,像是 VisualStudio.gitignore、C++.gitignore、Qt.gitignore
接著將專案的設定放在 Project.gitignore,最後用一個批次檔來產生 .gitignore。
cat Project.gitignore VisualStudio.gitignore C++.gitignore Qt.gitignore > ../.gitignore
這麼一來 gitignore 既方便使用也好維護 !
資料來源:
gitignore - A collection of useful .gitignore templates
https://github.com/github/gitignore
Best practice for using multiple .gitignore files
http://stackoverflow.com/questions/10274424/best-practice-for-using-multiple-gitignore-files
2016年10月15日 星期六
2015年4月29日 星期三
Visual Studio Qt IntelliSense: 無法開啟來源檔案 "initializer_list"
Visual Studio Qt IntelliSense: 無法開啟來源檔案 "initializer_list"
完整的訊息如下:
IntelliSense: 無法開啟來源檔案 "initializer_list"
IntelliSense: 內嵌規範只能用於函式宣告
IntelliSense: namespace "std" 沒有成員 "initializer_list"
IntelliSense: 必須是 ')'
IntelliSense: 必須是 ';'
IntelliSense: class "QStringList" 沒有成員 "sort"
一開始因為有些專案會出現,有些不會,所以沒有發現原因,
後來發現原因是 Visual Studio 2013 指定平台工具組為 Visual Studio 2012,
也就是使用 VS 2013 為 IDE,但是 compiler toolchain 使用 VS 2012 進行編譯。
一些程式的寫法是用 Visual Studio 的版本來判斷是否支援某些寫法,像是 C++11 之類的,
這時候因為使用的 IDE 版本跟編譯器不一致,導致 VS 的 IntelliSense 誤判。
目前的解決方法是強制設定這些專案的 VS 版本為 2012,
在專案屬性宣告 _MSC_FULL_VER=170061030 即可。
完整的訊息如下:
IntelliSense: 無法開啟來源檔案 "initializer_list"
IntelliSense: 內嵌規範只能用於函式宣告
IntelliSense: namespace "std" 沒有成員 "initializer_list"
IntelliSense: 必須是 ')'
IntelliSense: 必須是 ';'
IntelliSense: class "QStringList" 沒有成員 "sort"
一開始因為有些專案會出現,有些不會,所以沒有發現原因,
後來發現原因是 Visual Studio 2013 指定平台工具組為 Visual Studio 2012,
也就是使用 VS 2013 為 IDE,但是 compiler toolchain 使用 VS 2012 進行編譯。
一些程式的寫法是用 Visual Studio 的版本來判斷是否支援某些寫法,像是 C++11 之類的,
這時候因為使用的 IDE 版本跟編譯器不一致,導致 VS 的 IntelliSense 誤判。
目前的解決方法是強制設定這些專案的 VS 版本為 2012,
在專案屬性宣告 _MSC_FULL_VER=170061030 即可。
2015年3月20日 星期五
error C2977: 'std::tuple' : too many template arguments
最近遇到「error C2977: 'std::tuple' : 樣板 引數太多 」的問題,
上網查詢之後發現是 Visual Studio 2012 不支援 variadic templates,
解決方案是在前置處理器定義加上 _VARIADIC_MAX 10
註:Visual Studio 2013 已支援
參考資料:
C2977: 'std::tuple' : too many template arguments (MSVC11)
http://stackoverflow.com/questions/8274588/c2977-stdtuple-too-many-template-arguments-msvc11
上網查詢之後發現是 Visual Studio 2012 不支援 variadic templates,
解決方案是在前置處理器定義加上 _VARIADIC_MAX 10
註:Visual Studio 2013 已支援
參考資料:
C2977: 'std::tuple' : too many template arguments (MSVC11)
http://stackoverflow.com/questions/8274588/c2977-stdtuple-too-many-template-arguments-msvc11
2014年9月7日 星期日
Visual Studio 2013 IIS Express remote access (遠端存取)
在使用 Visual Studio 開發 Web 專案時,因為客戶使用 iPad Mini 為操作界面,
雖然 Chrome 擁有 Device Mode & Mobile Emulation 功能,可以滿足大部份的視覺模擬。
但是在一些細微的視覺差異以及在硬體上,還是只能在實體機上面呈現。
然而,預設 Visual Studio Web 專案啟動時,使用的 IIS Express 是只能本地存取的 (localhost access only),所以我們只能一再的將修正後的程式部署到開發環境中的 IIS Server,在 iPad 上確認是否符合預期,如果不是則再重覆上面的動作,實在是很累人。
所以,決定上網尋找一下,能不能讓 Visual Studio 2013 IIS Express 支援遠端存取 (Remote Access),答案是可以!下面是修改步驟。
專案 > 屬性 > Web 頁面中,有個 專案 URL,原本是 localhost:54926 (54926 是隨機 port 號),改為 127.0.0.123:54926 ( 127.0.0.123 是電腦的 IP,或是 domain 也行)。
如果改完之後直接啟動,會出現
Bad Request - Invalid Hostname / HTTP Error 400. The request hostname is invalid.
這是正常的,還需要修改 IIS Express 設定,開啟這個檔案
%USERPROFILE%\My Documents\IISExpress\config\applicationhost.config
找到像這樣的設定:
<site name="WebSiteTest" id="1" serverAutoStart="true">
<application path="/">
<virtualDirectory path="/" physicalPath="E:\Project\WebSiteTest" />
</application>
<bindings>
<binding protocol="http" bindingInformation="*:54926:localhost" />
</bindings>
</site>
將上述中的 bindingInformation="*:54926:localhost" 改為 bindingInformation="*:54926:127.0.0.123"
重新啟動後,就可以看到網站,這時候就可以遠端存取了!
Reference
Connecting to Visual Studio debugging IIS Express server over the lan
Using Custom Domains With IIS Express
Allowing remote access to your IIS Express service
雖然 Chrome 擁有 Device Mode & Mobile Emulation 功能,可以滿足大部份的視覺模擬。
但是在一些細微的視覺差異以及在硬體上,還是只能在實體機上面呈現。
然而,預設 Visual Studio Web 專案啟動時,使用的 IIS Express 是只能本地存取的 (localhost access only),所以我們只能一再的將修正後的程式部署到開發環境中的 IIS Server,在 iPad 上確認是否符合預期,如果不是則再重覆上面的動作,實在是很累人。
所以,決定上網尋找一下,能不能讓 Visual Studio 2013 IIS Express 支援遠端存取 (Remote Access),答案是可以!下面是修改步驟。
專案 > 屬性 > Web 頁面中,有個 專案 URL,原本是 localhost:54926 (54926 是隨機 port 號),改為 127.0.0.123:54926 ( 127.0.0.123 是電腦的 IP,或是 domain 也行)。
如果改完之後直接啟動,會出現
Bad Request - Invalid Hostname / HTTP Error 400. The request hostname is invalid.
這是正常的,還需要修改 IIS Express 設定,開啟這個檔案
%USERPROFILE%\My Documents\IISExpress\config\applicationhost.config
找到像這樣的設定:
<site name="WebSiteTest" id="1" serverAutoStart="true">
<application path="/">
<virtualDirectory path="/" physicalPath="E:\Project\WebSiteTest" />
</application>
<bindings>
<binding protocol="http" bindingInformation="*:54926:localhost" />
</bindings>
</site>
將上述中的 bindingInformation="*:54926:localhost" 改為 bindingInformation="*:54926:127.0.0.123"
重新啟動後,就可以看到網站,這時候就可以遠端存取了!
Reference
Connecting to Visual Studio debugging IIS Express server over the lan
Using Custom Domains With IIS Express
Allowing remote access to your IIS Express service
訂閱:
文章 (Atom)