SourceSafe có thực sự an toàn không?


27

Đã dành cả buổi sáng để cố gắng kiểm tra một cái gì đó - bây giờ tôi nhận ra rằng tôi đã mất một vài ngày làm việc.

Nó đã xảy ra trước đây - và dường như là sự xuất hiện phổ biến với SourceSafe. SourceSafe có thể được sử dụng thành công mà không gặp sự cố không và nếu có thì làm thế nào?


40
Ôi Chúa ơi KHÔNG ... không bao giờ, bao giờ nữa!
Tim Post

27
Tôi đã chiến đấu lâu dài và chăm chỉ để đưa SourceSafe ra khỏi công ty của mình. Cuối cùng đã chiến thắng và mọi người đều hạnh phúc hơn vì điều đó.
Kevin D

13
Bất kỳ tổ chức nào sử dụng VSS đều là "mùi org" tồi
JoelFan

8
Cụm từ "Kiểm tra sớm và thường xuyên." là để ngăn chặn các loại tình huống. Bạn không bao giờ nên mất nhiều hơn một vài giờ làm việc. Tuy nhiên, Iron Maiden đã nói điều tốt nhất về VSS: "Chạy lên đồi! Chạy vì cuộc sống của bạn!"
Ryan Hayes

3
Microsoft không sử dụng nó. Tại sao chúng ta lại nên?
greyfade

Câu trả lời:


45

Quan điểm của tôi là đơn giản, di chuyển sang một cái gì đó càng sớm càng tốt. Sẽ không mất nhiều thời gian (1-2 tuần WAG) và cho dù việc di chuyển mất bao lâu, thật dễ dàng để chi trả cho việc quản lý. Một chút thời gian để di chuyển tương đương với kiểm soát nguồn vững chắc và rất ít khả năng mất mã nguồn. Thực hiện tìm kiếm nhanh trên google cho "những câu chuyện kinh dị an toàn nguồn" hoặc tương tự nếu ông chủ của bạn nghi ngờ.


Đúng, nhưng đôi khi không dễ để biện minh cho một người không có kỹ thuật dành 1-2 tuần để di chuyển kiểm soát nguồn.
t3mujin

2
@ t3mujin, xem các cuộc thảo luận về lập trình viên
Nemi

SourceSafe là một trách nhiệm tích cực và đang diễn ra đối với năng suất ngắn hạn và dài hạn của bạn. Nó có thể dễ dàng được thay thế bởi bất kỳ số lượng các hệ thống kiểm soát phiên bản hiện đại, an toàn và phân tán. Thực hiện một số nghiên cứu với Google về những câu chuyện kinh dị SourceSafe cũng như hướng dẫn chuyên nghiệp. KIẾM TRƯỜNG HỢP CỦA BẠN MẠNH M .. Làm bất cứ điều gì.
Adam Crossland

3
@ t3mujin: di chuyển theo từng dự án. Khi tôi đang làm việc, chúng tôi đã từng sử dụng SourceSafe, bây giờ chúng tôi sử dụng TFS. Di chuyển mọi thứ (hàng trăm dự án) sẽ là một nỗi đau, vì vậy, thay vào đó, nếu chúng tôi có việc phải làm với một dự án cũ vẫn còn ở SourceSafe, trước tiên chúng tôi dành một lượng nhỏ thời gian để di chuyển nó, và chỉ sau đó bắt đầu công việc.
Carson63000

@ Carson63000 Chúng tôi đang sử dụng TFS cho hầu hết các dự án hiện tại, nhưng có một cơ sở nguồn lớn với một vài cập nhật nhưng không thường xuyên trên VSS mà không ai sẵn sàng trả tiền di chuyển sang TFS. Tôi không thuộc nhóm sử dụng nó thường xuyên hơn nên thỉnh thoảng tôi vẫn ổn với một vài dòng mã
t3mujin

33

Tệ nhất SCM. Không bao giờ.

Tất cả những gì sai trong SCM được thể hiện trong VSS. Ngay cả StarTeam cũng tốt hơn Source Safe. Source Safe là Internet Explorer 1 của thế giới kiểm soát phiên bản: hoàn toàn bị áp đặt bởi bất kỳ triển khai nào khác.

Tôi đã sử dụng nó như thế nào?

Quy trình công việc điển hình của tôi để hoàn thành công việc là

  1. Kiểm tra dự án
  2. Khóa tất cả các tệp (để tránh hợp nhất với bất kỳ ai đã mở cánh cổng địa ngục vô hồn)
  3. Đã làm việc của tôi
  4. Mỗi ngày kiểm tra những thay đổi của tôi trong
  5. Đã kiểm tra lại tất cả một lần nữa và khắc phục tất cả các vấn đề với tích hợp
  6. Đã kiểm tra lại

So với Subversion, ở trên là đáng cười (ngoài việc kiểm tra bạn đã không phá vỡ bản dựng).

Hạn chế đối với thực tiễn lập trình nhóm của tôi

Đây là những quy tắc mà nhóm phải làm việc để làm cho nó hoạt động. Số dặm của bạn có thể thay đổi.

  1. Một người chỉ có thể chỉnh sửa một tập tin (Trời giúp bạn nếu họ đi nghỉ)
  2. Đừng phân nhánh quá khó để quản lý
  3. Không bao giờ cố gắng quay lại phiên bản trước

Những gì có thể được thực hiện?

Polarion có một bộ công cụ tốt để chuyển từ nguồn như Safe Safe sang Subversion (SVN), đây là tiêu chuẩn thực tế hiện nay trong hầu hết các doanh nghiệp để kiểm soát phiên bản nguồn mở. Subversion không yêu cầu phải có sẵn máy chủ để cho phép đăng nhập (không giống như GIT hoặc Mercurial được thiết kế cho các nhóm ngoại tuyến phân tán).


@David đừng bắt tôi cố gắng lấy lịch sử sửa đổi tập tin hoặc phân nhánh (Tôi đang khóc khi tôi viết - rất nhiều giờ lãng phí trong cuộc sống của tôi ...)
Gary Rowe

2
yeah, chi nhánh và hợp nhất không thực sự thú vị trong một SCM tốt. Tôi không nghĩ rằng quốc hội sẽ cho phép bạn khiến mọi người làm điều đó trong nguồn an toàn.
BlackICE

2
Không bao giờ quay lại phiên bản trước? Tại sao không? Và nếu vậy, toàn bộ mục đích của việc sử dụng công cụ SCM là gì?
JoelFan

Ngày trước khi tôi ở một cửa hàng sử dụng VSS, chúng tôi chưa bao giờ gặp rắc rối nào khi quay lại phiên bản cũ. Điều đó có vẻ hơi cực đoan. Tôi với bạn trên nhánh mặc dù.
JohnFx

@JohnFx @SpashHit Nhóm của chúng tôi có khả năng chịu đau rất thấp nên có lẽ tôi đang ở trên đỉnh một chút. Khi Subversion xuất hiện, nó giống như một sức nặng khủng khiếp đã được dỡ bỏ.
Gary Rowe

15

Thay đổi Kiểm soát nguồn của bạn thành SVN / Mercurial / Git và không bao giờ nhìn lại!


3
Đó là "Mercurial", không phải "Mercury" (chỉ cần chọn một số nits ở đây, không có ý xúc phạm)
Jürgen A. Erhard

@jae Đã sửa lỗi đó cho bạn :-)
Gary Rowe

11

Chúng tôi đã đưa nó ra khỏi hoạt động khoảng một năm trước.

Nó đã xảy ra nhiều lần mà những gì tôi đã đăng ký vào tối hôm trước chỉ không có ở đó vào sáng hôm sau. Tôi đã không thấy thú vị bởi vì nó trông giống như tôi đã không hoàn thành công việc của mình. Vì tôi mới vào công ty nên nó có thể gây nguy hiểm cho tôi.

Chúng tôi đã chuyển sang TFS và nó đã hoạt động trơn tru kể từ đó.


1
+1 để lấy nó ra hoạt động. Bạn đã làm đúng.
Gary Rowe

1
TFS là một điều đẹp, đẹp. Nếu bạn có bột để trả tiền cho nó, đó là.
Adam Crossland

2
@Adam Crossland: Đẹp như một viên kim cương lớn, và có cùng giá tiền.
Orble

1
@ Tổ chức: nói tốt.
Adam Crossland

1
Đối với những người không nhận ra chữ viết tắt, TFS là Team Foundation Server của Microsoft .
Keith Thompson

9

Quan điểm của tôi?

Có những cái tốt hơn dễ sử dụng hơn, an toàn hơn để sử dụng và hoàn toàn miễn phí. Tại sao phải sử dụng nó cả?

Đây là một lĩnh vực phát triển nơi chúng ta có nhiều sự lựa chọn; hầu hết, hoặc tất cả, tốt hơn VSS.


"nhất" là một chút bối rối ... hoặc đặt một cách khác: điều gì tồi tệ hơn VSS?
Jürgen A. Erhard

@jae: Phải chỉ là một vòng loại cho thấy tôi chưa sử dụng tất cả, và do đó không thể xác minh chất lượng của chúng liên quan đến VSS; do đó "hoặc tất cả"
Steven Evers

9

Sử dụng SourceSafe trong một hoạt động thương mại cũng giống như làm nóng tòa nhà bằng cách đốt các hóa đơn đô la.

Vào năm 2000, công ty tám nhà phát triển của tôi có thể đã mất 5-10% năng suất vì các lỗi cơ sở dữ liệu VSS trung bình hai lần mỗi ngày. Nó chỉ ở mức thấp vì chúng tôi đã đi đến các bản sao lưu hàng giờ.

Kể từ khi chuyển từ VSS sang Perforce, svn và git, tôi chưa bao giờ có cơ sở dữ liệu SCM bị hỏng.


7

Tôi có thể bị bỏ phiếu xuống địa ngục về điều này, nhưng ..

văn bản thay thế

VSS thực sự khiến bạn gặp khó khăn, đến mức bạn không thể dung hòa được bất kỳ loại thực tế nào cần thiết để nhận ra rằng repo bây giờ của bạn không phải là lỗi của bạn.

Xin vui lòng, không bao giờ sử dụng nó.


Bạn không thể bỏ phiếu xuống. Chỉ trích duy nhất của tôi là cyanide rõ ràng là thuốc được lựa chọn cho người dùng VSS theo thói quen.
Orble

7

đã sử dụng nó trong nhiều năm - đó là giải pháp mặc định, vì nó đã có sẵn. Nó đã cắn tôi khá nhiều lần, nhưng quán tính rất khó vượt qua

sau đó tôi đã phải sử dụng nó từ xa qua VPN và thậm chí các đăng ký nhỏ cũng giống như nhét một viên gạch qua lỗ kim . Nhanh hơn là tìm các tệp đã thay đổi, nén chúng, gửi email, điều khiển từ xa vào máy vault nguồn, giải nén chúng và kiểm tra mã từ máy vault nguồn.

Chuyển sang Mercurial. Tôi có thể sao chép toàn bộ cơ sở mã nguồn trên VPN trong vòng một phút. Và tôi không còn sợ phân nhánh.

Không bao giờ quay trở lại.


Nguồn Offsite là cho điều đó. Tôi cũng nhớ điều đó. Tôi thực sự đã mua bản sao nguồn ngoại vi của riêng mình chỉ để tôi không phải thực hiện VSS qua VPN
BlackICE

+1 cho "Tôi không còn sợ phân nhánh" dấu hiệu của một SCM trưởng thành
Gary Rowe

5

Đó là một sự gớm ghiếc. Nhưng vẫn tốt hơn là không có gì.


12
Với tất cả các lựa chọn thay thế, thật khó để biện minh cho việc sử dụng, bởi vì khi nó đi về phía nam, đó là thứ bạn sẽ có: Không có gì.
DevSolo

13
Làm thế nào tốt hơn không có gì nếu nó khiến bạn mất việc?
billy.bob

4
Bạn có thể mất việc mà không có gì là tốt, nguồn an toàn ít nhất có thể cứu bạn đôi khi .
BlackICE

4
@David - vì vậy có thể sao lưu hợp lý trước khi thực hiện bất kỳ điều gì có khả năng 'icky'. Điều duy nhất mà đối thủ của VSS thất bại là MS BOB. VSS kinh khủng đến nỗi nên tạo ra một tổ chức từ thiện nhân danh việc chữa trị cho mọi người bằng cách sử dụng nó.
Tim Post

9
Không, nó còn tệ hơn là không có gì. Bởi vì nếu bạn
C ALNG

5

Tôi đã sử dụng nó trong một thời gian dài (gần 10 năm) mà không gặp phải bất kỳ vấn đề nào (kể cả trong các đội tôi đang làm việc mặc dù mã của chúng tôi có xu hướng được phân chia khá tốt để tránh xung đột và tương tự).

Nhưng có quá nhiều câu chuyện về mất dữ liệu để tiếp tục sử dụng nó khi có những lựa chọn thay thế nguồn mở đáng tin cậy ngoài kia.

Chỉnh sửa: Từ các bình luận, tin nhắn dường như tránh được mọi thứ phức tạp (phân nhánh, hợp nhất, xung đột) và có lẽ bạn vẫn ổn. Bất cứ điều gì nhiều hơn và bạn đang đi vào lãnh thổ rủi ro.


Bạn đã làm việc trong một nhóm, hoặc trong các dự án solo trong một cơ sở mã tổng thể?
Gary Rowe

Trong một nhóm mặc dù cơ sở mã được phân chia tương đối tốt về mặt những người đang làm việc trên những gì nên hiếm khi xảy ra xung đột.
Jon Hopkins

@Jon Điều đó đi một chặng đường dài để giải thích hoạt động không có rắc rối.
Gary Rowe

1
FWIW kinh nghiệm của tôi tương tự như của Jon. 7 năm, đội 8 người, không gặp vấn đề gì khi sử dụng VSS. Rõ ràng chúng ta thuộc nhóm thiểu số (may mắn). Tôi sẽ không bao giờ sử dụng nó một lần nữa dựa trên tất cả các câu chuyện (sử dụng SVN ngay bây giờ).
Steve Fallows

1
Khi phân nhánh, hợp nhất và giải quyết xung đột được coi là các hoạt động phức tạp, có lẽ bạn đang sử dụng hệ thống kiểm soát phiên bản sai ...
James

5

Ngay cả MS cũng phản đối nó ủng hộ TFS.

Đối với một cửa hàng solo hoặc thực sự nhỏ làm việc trong Visual Studio 6 hoặc một cái gì đó cũ hơn thì có thể vượt qua và tốt hơn là không có gì. Tôi nghĩ rằng có rất nhiều sự cường điệu về việc nó tệ như thế nào, nhưng sau đó chỉ mất một trường hợp mất công việc có giá trị để làm bạn thất vọng về một sản phẩm (vì lý do chính đáng). VSS đã có chỗ đứng của mình và tôi tin rằng nó ít nhất đã khuyến khích rất nhiều nhà phát triển, những người không sử dụng công cụ SCM nào để tập thói quen, nhưng giống như nhiều công nghệ hiện nay nó đã lỗi thời.


Bắt mọi người bắt đầu sử dụng SCM là tốt, không cần bàn cãi. Nhưng ... VSS? Những trải nghiệm tồi tệ không thể chỉ mang đến một sản phẩm có tên xấu, họ có thể đặt cho cả một danh mục xấu. Hoặc: có bao nhiêu nhà phát triển bắt đầu SCM với VSS và sau đó nghĩ "Wow, công cụ SCM này tệ như tôi mong đợi" khi VSS làm hỏng? Chưa kể SCM là một phần cơ sở hạ tầng cực kỳ quan trọng, có nghĩa là: lỗi không được phép (vâng, tôi biết ...)
Jürgen A. Erhard

@jae đó không phải là kinh nghiệm của tôi. VSS là lần đầu tiên tôi tiếp xúc với SCM và tôi chưa bao giờ nhìn lại. Tôi đã không gặp phải bất kỳ mất dữ liệu, tham nhũng hoặc bất kỳ vấn đề nào trong NĂM khi sử dụng nó. Cuối cùng tôi đã tiếp tục, nhưng tôi nghĩ rằng tôi sẽ mất nhiều thời gian hơn để tích hợp một công cụ nếu nó không được cài đặt sẵn với Visual Studio trở lại trong ngày.
JohnFx

3

Sau 3 năm sử dụng, phàn nàn và gửi đến người quản lý của tôi vì tất cả các lựa chọn hợp lý / tiên tiến hơn ngoài kia, tôi chưa bao giờ thực sự gặp vấn đề với VSS, nhưng tôi cũng chưa bao giờ có lựa chọn nào.

Quan điểm của tôi là nó vừa hút vừa thổi.

Phần khó chịu nhất về nó không phải là phiên bản khủng khiếp và khả năng phân nhánh khó hiểu, nhưng hộp danh sách trên menu tệp không cho phép bạn nhấn phím mũi tên phải để mở rộng.

Thật sự rất đau đớn.


3

Quan điểm của tôi về VSS? Tôi đã từ chối một vài lời mời làm việc (được trả lương rất cao) vì họ yêu cầu "thành thạo VSS". Và tôi chắc chắn có một vài người khác ở đây cũng làm như vậy.


1
+1, đặt "VSS thành thạo" trên một quảng cáo công việc là một dấu hiệu chắc chắn rằng không chỉ làm VSS sử dụng công ty, nhưng họ có một thiết lập nơi VSS đã quá hư hỏng và có vấn đề mà nó đòi hỏi kinh nghiệm VSS chính hãng để làm cho nó làm việc tại tất cả .
Carson63000

1

Bạn không chỉ phải chịu đựng vấn đề tham nhũng nguồn tiềm năng (cần phải đủ lý lẽ để quản lý thay thế nó), mà bạn còn phải sống với bản sao lưu lúng túng và không có khả năng làm việc hiệu quả như một nhóm làm việc trên các luồng công việc khác nhau.

Tìm một SCM khác (bất kỳ cái nào khác) và xem cách dễ dàng phân nhánh và hợp nhất. Hãy nghĩ về những lúc bạn phải sao chép các tệp ra khỏi giải pháp VSS của mình và giữ chúng ở một nơi khác trong khi bạn quay lại để sửa lỗi về mã 'sản xuất'.

Đối với các cú đá, chỉ cần cài đặt GIT - trỏ nó vào các tệp VSS của bạn và xem GASP hai lập trình viên có thể làm việc dễ dàng như thế nào trên các phần khác nhau của cùng một tệp TẠI THỜI GIAN, sau đó phần mềm kết hợp thông minh các thay đổi của bạn ... SCM các công cụ nên được nhiều hơn là chỉ sao lưu nguồn.


0

Quan điểm của tôi về VSS? Đã sử dụng nó trong một thời gian dài thường xuyên (vẫn được sử dụng thường xuyên cho các thành phần cũ hơn) nhưng đó là thế kỷ XX cho nhóm của chúng tôi:

  • Rất không đáng tin cậy
  • Chi nhánh không sử dụng được
  • Hỗ trợ phiên bản rất kém, bạn có nhãn nhưng (giống như các chi nhánh) không thực sự có thể sử dụng được

Tôi có tất cả những điều trên: chọn một trong những lựa chọn thay thế nguồn mở tốt hơn (ngay cả CVS cũ) hoặc, nếu công ty của bạn có một loại đăng ký MSDN, TFS .


0
  • khóa mặc định của nó đã làm chậm các nhà phát triển và không ai muốn gây rối với thiết lập của nó
  • nó không tích hợp tốt với các dịch vụ khác, ví dụ như một ứng dụng web quản lý dự án
  • nó sẽ không hoạt động tốt với máy chủ CI theo kế hoạch của chúng tôi

Công cụ Team Foundation 2010 mới được cho là sẽ giúp ích rất nhiều và cố gắng thoát khỏi những phần tồi tệ của VSS. Nhưng cốt lõi là nó vẫn dựa vào VSS , đó là lý do tại sao chúng tôi chuyển sang SVN.

chỉnh sửa - Tôi hiểu rằng TFS hoàn toàn mới, nhưng khi thử nghiệm nó, nhiều nhà phát triển tôi đã hỏi có cảm giác rất giống với nó. Lý do tôi nói 'ở cốt lõi' là vì tôi nhớ rằng đã xem các tệp TFS được tạo trong giải pháp của mình trông giống như các VSS đã tạo. Đây là từ quan điểm của nhà phát triển, thậm chí có thể không biết về công nghệ đằng sau VSS hoặc TFS hoặc bất kỳ SCM nào khác. Xin lỗi vì sự nhầm lẫn.


Gì!?!? TFS không ở đâu dựa vào VSS
BlackICE

TFS đã được viết lại từ đầu ... không dựa vào VSS dưới bất kỳ hình thức nào.
LeWoody

2
Visual Studio sử dụng API plugin SCC tương tự cho TFS và VSS. API này hỗ trợ VSS và có cảm giác VSS với nó, vì vậy khi bạn thay đổi từ VSS sang bất kỳ máy chủ kiểm soát nguồn nào khác, sẽ có cảm giác như bóng ma của VSS vẫn còn đó.
MatthewMartin

1
@LWoodyiii: Vậy thì cuối cùng họ đã mã hóa một đống rác như thế nào hai lần? Họ ít nhất phải đọc các bình luận trong mã nguồn VSS.
Robert S Ciaccio

1
@CraigTP: hầu hết những người phát ngôn hoàn toàn không cần đến những thứ trong TFS. Đó chỉ là tiếng ồn làm cho công việc của họ khó khăn hơn. Nếu PM và khách hàng tiềm năng muốn tất cả chức năng đó, họ nên tách biệt khỏi phần mềm mà nhà phát triển cần sử dụng để có hiệu quả.
Robert S Ciaccio

0

Ngày trước, tôi đã được cài đặt SCCS theo XENIX. VSS, trong Visual Studio 6, đối với tất cả các lỗi và sự cố đều có những ưu điểm riêng biệt. Tôi vẫn sử dụng nó cho các dự án nhỏ và tôi không còn sử dụng SCCS trong bất kỳ phiên bản nào.


0

Tôi không thể hiểu tại sao mọi người muốn badmouth VSS. VSS không được phân phối và kiểm soát phiên bản phân tán là

  1. tốt hơn
  2. cho phép kiểm soát phiên bản không phân phối trong thực tế

Xin vui lòng đọc này .

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.