Mercurial .hgignore cho các dự án Visual Studio 2008


164

Thiết lập tốt cho tệp .hgignore khi làm việc với Visual Studio 2008 là gì?

Tôi chủ yếu tự phát triển, chỉ thỉnh thoảng tôi sao chép kho lưu trữ để người khác làm việc với nó.

Tôi đang suy nghĩ về các thư mục obj, tập tin .suo, .sln, .user, v.v. Chúng có thể được bao gồm hoặc có tập tin nào tôi không nên đưa vào không?

Cảm ơn!

ps: tại thời điểm này tôi làm như sau: bỏ qua tất cả các tệp .pdb và tất cả các thư mục obj.

# regexp syntax.
syntax: glob
*.pdb

syntax: regexp
/obj/

6
Lưu ý bên lề: Tôi nghĩ rằng không nên loại trừ các tệp .sln khỏi kiểm soát nguồn
Slavo

2
Slavo, bạn đúng. Các tệp giải pháp (.sln) chứa cấu trúc của các dự án của bạn, vì vậy bạn sẽ muốn đưa các dự án vào kho lưu trữ của mình.
Ngay cả Miên

Câu trả lời:


208

Đây là tệp .hgignore tiêu chuẩn của tôi để sử dụng với VS2008 ban đầu được sửa đổi từ tệp bỏ qua Git:

# Ignore file for Visual Studio 2008

# use glob syntax
syntax: glob

# Ignore Visual Studio 2008 files
*.obj
*.exe
*.pdb
*.user
*.aps
*.pch
*.vspscc
*_i.c
*_p.c
*.ncb
*.suo
*.tlb
*.tlh
*.bak
*.cache
*.ilk
*.log
*.lib
*.sbr
*.scc
[Bb]in
[Dd]ebug*/
obj/
[Rr]elease*/
_ReSharper*/
[Tt]est[Rr]esult*
[Bb]uild[Ll]og.*
*.[Pp]ublish.xml

4
Không, nhưng họ có cùng khái niệm về một tập tin bỏ qua.
Ngay cả Miên

2
Dòng [Db] ebug * / - Tôi giả sử rằng đó phải là chữ thường d chứ không phải chữ thường b, đã sử dụng danh sách bỏ qua này làm mẫu và mất một phút để tìm hiểu lý do tại sao thư mục "gỡ lỗi" lại không t bị bỏ qua :) Cảm ơn các tập tin bỏ qua tuyệt vời.
Nate Pinchot

4
Tôi đang tìm mã bỏ qua mà Rob Connery đã sử dụng trong video Mercurial for Codeplex Tekpub của mình và nó khớp với chính xác này. Bạn đã làm rất tốt!
Ben McCormack

1
Đối với tôi điều này có nghĩa là một tệp có tên Debug.S Something.dll.config đã bị bỏ qua, vì vậy tôi nghĩ rằng dấu / trên [Dd] ebug * / không có hiệu ứng mong muốn. Có lẽ đối với các cửa sổ nên là [Dd] ebug * \?
Rory

2
Đối với tôi điều này có nghĩa là một tệp có tên Debug.S Something.dll.config đã bị bỏ qua, vì vậy tôi nghĩ rằng dấu / trên [Dd] ebug * / không có hiệu ứng mong muốn. Tôi nghĩ vấn đề là do cú pháp kiểu toàn cầu không khớp chính xác trên các thư mục. Nếu bạn đưa ra các dòng Debug và Release và thay thế chúng với ba dòng mới ở dưới cùng của tập tin: syntax: regexp[Rr]elease.*/[Dd]ebug.*/sau đó nó dường như làm việc một cách chính xác.
Rory

37

Điều này là dành riêng cho một dự án C #, nhưng tôi bỏ qua các tệp / thư mục này:

  • *.csproj.user
  • /obj/*
  • /bin/*
  • *.ncb
  • *.suo

Tôi không gặp vấn đề gì khi chạy mã trong kho trên các máy khác sau khi tôi bỏ qua tất cả các tệp này. Cách dễ nhất để tìm ra những gì bạn cần giữ là tạo một bản sao của thư mục và bắt đầu xóa những thứ bạn nghĩ là không cần thiết. Tiếp tục cố gắng xây dựng, và miễn là bạn có thể xây dựng thành công tiếp tục xóa. Nếu bạn xóa quá nhiều, sao chép nó từ thư mục nguồn.

Cuối cùng, bạn sẽ có một thư mục đẹp chứa đầy các tệp duy nhất phải được cam kết.


5
Tôi cũng bỏ qua các tệp * .config, vì nhóm nhà phát triển của tôi đều chạy trong các môi trường hơi khác nhau (ví dụ db cục bộ, máy chủ email cục bộ, v.v.) Ngoài ra, mật khẩu nằm trong web.config.
Máy Ash

Tôi luôn nghĩ rằng bạn cần .su cho nó, cảm ơn vì tiền boa. Chúng tôi đã có xung đột tất cả các thời gian trên đó.
shmeeps

24

Tôi cảm thấy bị bỏ rơi khỏi cuộc trò chuyện. Đây là tập tin .hgignore của tôi. Nó bao gồm sự phát triển của C #, C ++ và Visual Studio nói chung, bao gồm công cụ COM (thư viện loại), một số tệp trình tạo cuối cùng, CodeRush, ReSharper và nâng cấp dự án Visual Studio. Nó cũng có một số bỏ qua cho phát triển web hiện đại (c.2015).

syntax: glob

* - [Cc]opy
* - [Cc]opy/
* - [Cc]opy (?)/
* - [Cc]opy.*
* - [Cc]opy (?).*
**/.*
**/scss/*.css
*.*scc
*.FileListAbsolute.txt
*.aps
*.bak
*.bin
*.[Cc]ache
*.clw
*.css.map
*.eto
*.exe
*.fb6lck
*.fbl6
*.fbpInf
*.ilk
*.lib
*.log
*.ncb
*.nlb
*.nupkg
*.obj
*.old
*.orig
*.patch
*.pch
*.pdb
*.plg
*.[Pp]ublish.xml
*.rdl.data
*.sbr
*.scc
*.sig
*.sqlsuo
*.suo
*.svclog
*.tlb
*.tlh
*.tli
*.tmp
*.user
*.vshost.*
*.docstates
*DXCore.Solution
*_i.c
*_p.c
__MVC_BACKUP/
_[Rr]e[Ss]harper.*/
_UpgradeReport_Files/
Ankh.Load
Backup*
[Bb]in/
bower_components/
[Bb]uild/
CVS/
[Dd]ebug/
[Ee]xternal/
hgignore[.-]*
ignore[.-]*
lint.db
node_modules/
[Oo]bj/
[Pp]ackages/
PrecompiledWeb/
[Pp]ublished/
[Rr]elease/
svnignore[.-]*
[Tt]humbs.db
UpgradeLog*.*

+1, của bạn đang sử dụng Debug /, vì vậy sẽ không sử dụng "Debug.s Something.cs"
Sebastian

11

Đây là nội dung của .hgignore của tôi cho các dự án C # Visual Studio:

syntax: glob
*.user
*.ncb
*.nlb
*.suo
*.aps
*.clw
*.pdb
*\Debug\*
*\Release\*

Một vài lưu ý:

  1. Nếu bạn có "bản phát hành" tùy chỉnh bên cạnh "Gỡ lỗi" và "Phát hành", bạn có thể cần thêm chúng.
  2. Hãy cẩn thận khi bạn chỉnh sửa thủ công .hgignore của bạn. Nếu bạn mắc lỗi cú pháp, thì hgtort rùa sẽ không mở hộp thoại cam kết nữa.

8

Nội dung tập tin Mercurial .hgignore của tôi:

syntax: glob
#-- Files
*.bak.*
*.bak
thumbs.db

#-- Directories
App_Data/*
bin/
obj/
_ReSharper.*/
tmp/

#-- Microsoft Visual Studio specific
*.user
*.suo

#-- MonoDevelop specific
*.pidb
*.userprefs
*.usertasks

Hãy nhớ rằng tôi chủ yếu làm việc trên các dự án WinForms, ASP.NET MVC và Mobile bằng Microsoft Visual Studio và đôi khi là MonoDevelop. Tùy thuộc vào loại công cụ và loại dự án của bạn, bạn có thể sẽ gặp các tệp khác nên bị bỏ qua.

Tôi cố gắng giữ phiên bản mới nhất trên CodePaste.NET tại http://codepaste.net/zxov7i


4

một số người khác tôi sử dụng:

output
PrecompiledWeb
_UpgradeReport_Files

#Guidance Automation Toolkit
*.gpState
#patches
*.patch

3

Dưới đây là một vài cái đáng tiếc: Matlab và Excel / Office autosaves.

# use glob syntax
syntax: glob

# Matlab ignore files
*.asv

# Microsoft Office
~$*

Nếu tôi vô tình thêm chúng và sau đó đóng tệp thực sự đang mở, Excel và / hoặc Matlab sẽ xóa tự động lưu và sau đó Mercurial sẽ bị mắc kẹt tự hỏi họ đã đi đâu. Tôi chắc chắn có những chương trình khác làm những điều tương tự.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.