Tôi cảm thấy câu trả lời cho câu hỏi của bạn là rất có - lợi ích của việc quản lý tệp của bạn với hệ thống kiểm soát phiên bản vượt xa chi phí thực hiện một hệ thống như vậy.
Tôi sẽ cố gắng trả lời chi tiết một số điểm bạn nêu ra:
- Sao lưu: Tôi đã có một hệ thống sao lưu.
Có, và tôi cũng vậy. Tuy nhiên, có một số câu hỏi cần xem xét về sự phù hợp của việc dựa vào hệ thống sao lưu mục đích chung để theo dõi đầy đủ các tệp quan trọng và hoạt động liên quan đến công việc của bạn. Về mặt hiệu suất:
- Ở khoảng thời gian nào hệ thống sao lưu của bạn chụp ảnh nhanh?
- Mất bao lâu để xây dựng một ảnh chụp nhanh?
- Nó có phải hình ảnh toàn bộ ổ cứng của bạn khi chụp ảnh nhanh không, hoặc có thể dễ dàng yêu cầu sao lưu hai tệp vừa nhận được các bản cập nhật quan trọng?
- Hệ thống sao lưu của bạn có thể hiển thị cho bạn, với độ chính xác chính xác, điều gì đã thay đổi trong tệp văn bản của bạn từ bản sao lưu này sang bản sao lưu tiếp theo không?
Và quan trọng nhất:
- Có bao nhiêu vị trí sao lưu được lưu trong? Có phải chúng ở cùng một vị trí vật lý với máy tính của bạn không?
- Thật dễ dàng để khôi phục một phiên bản nhất định của một tệp từ hệ thống sao lưu của bạn?
Ví dụ: có máy Mac và sử dụng Time Machine để sao lưu vào ổ cứng khác trong máy tính của tôi. Time Machine rất tốt cho việc khôi phục tệp lẻ hoặc khôi phục hệ thống của tôi nếu mọi thứ bị rối tung. Tuy nhiên, đơn giản là nó không có những gì cần thiết để được tin tưởng với công việc quan trọng của tôi:
Khi sao lưu, Time Machine phải ghi hình ảnh toàn bộ ổ cứng cần một lượng thời gian đáng kể. Nếu tôi tiếp tục làm việc, không có gì đảm bảo rằng tập tin của tôi sẽ được ghi lại ở trạng thái như khi tôi bắt đầu sao lưu. Tôi cũng có thể đạt đến một điểm khác mà tôi muốn lưu trước khi bản sao lưu đầu tiên kết thúc.
Ổ cứng lưu trữ các bản sao lưu Time Machine của tôi được đặt trong máy của tôi - điều này làm cho dữ liệu của tôi dễ bị mất cắp, hỏa hoạn và các thảm họa khác.
Với một hệ thống kiểm soát phiên bản như Git, tôi có thể bắt đầu sao lưu các tệp cụ thể mà không cần phải yêu cầu lưu trong trình soạn thảo văn bản - và tệp được tạo ảnh và lưu trữ ngay lập tức. Hơn nữa, Git được phân phối để mỗi máy tính mà tôi làm việc có một bản sao đầy đủ của kho lưu trữ.
Điều này có nghĩa là công việc của tôi được nhân đôi trên bốn máy tính khác nhau - không có hành động nào của thần có thể phá hủy các tệp và dữ liệu của tôi, tại thời điểm đó tôi có lẽ sẽ không quan tâm quá nhiều.
- Ngã ba và tua lại: Tôi chưa bao giờ cảm thấy cần phải làm điều này, nhưng tôi có thể thấy nó hữu ích như thế nào (ví dụ: bạn đang chuẩn bị nhiều bài báo dựa trên cùng một tập dữ liệu; bạn đang chuẩn bị báo cáo được cập nhật hàng tháng, v.v. )
Là một nghệ sĩ độc tấu, tôi cũng không ngã ba. Tuy nhiên, thời gian tôi đã tiết kiệm được bằng cách có tùy chọn tua lại đã hoàn trả một lần tiền đầu tư của tôi vào việc học một hệ thống kiểm soát phiên bản nhiều lần. Bạn nói rằng bạn chưa bao giờ cảm thấy cần phải làm điều này - nhưng việc tua lại bất kỳ tệp nào trong hệ thống sao lưu hiện tại của bạn thực sự là một lựa chọn không đau đớn, khả thi?
Đôi khi báo cáo chỉ nhìn tốt hơn 45 phút, một giờ hoặc hai ngày trước.
- Cộng tác: Hầu hết thời gian tôi tự phân tích dữ liệu, do đó, tôi sẽ không nhận được lợi ích cộng tác của kiểm soát phiên bản.
Có, nhưng bạn sẽ học được một công cụ có thể chứng minh là không thể thiếu nếu cuối cùng bạn hợp tác với những người khác trong một dự án.
- Thời gian để đánh giá và tìm hiểu một hệ thống kiểm soát phiên bản
Đừng lo lắng quá nhiều về điều này. Các hệ thống kiểm soát phiên bản giống như ngôn ngữ lập trình - chúng có một vài khái niệm chính cần phải học và phần còn lại chỉ là đường cú pháp. Về cơ bản, hệ thống kiểm soát phiên bản đầu tiên bạn học sẽ yêu cầu đầu tư nhiều thời gian nhất để chuyển đổi sang hệ thống khác chỉ cần học cách hệ thống mới thể hiện các khái niệm chính.
Chọn một hệ thống phổ biến và đi cho nó!
- Sự gia tăng phức tạp có thể có trên hệ thống quản lý tệp hiện tại của tôi
Bạn có một thư mục, Projects
có chứa tất cả các thư mục và tệp liên quan đến hoạt động phân tích dữ liệu của bạn không? Nếu vậy thì việc tát kiểm soát phiên bản trên nó sẽ làm tăng độ phức tạp của hệ thống tệp của bạn một cách chính xác 0
. Nếu các dự án của bạn tập trung vào máy tính của bạn - thì bạn nên tập trung chúng trước khi áp dụng kiểm soát phiên bản và điều này sẽ làm giảm sự phức tạp của việc quản lý các tệp của bạn - đó là lý do tại sao chúng ta có một Documents
thư mục.
- Là kiểm soát phiên bản có giá trị nỗ lực?
Đúng! Nó cung cấp cho bạn một nút hoàn tác lớn và cho phép bạn dễ dàng chuyển công việc từ máy này sang máy khác mà không phải lo lắng về những việc như mất ổ USB.
2 Những ưu và nhược điểm chính của việc áp dụng kiểm soát phiên bản là gì?
Điều duy nhất tôi có thể nghĩ đến là tăng nhẹ kích thước tệp - nhưng các hệ thống kiểm soát phiên bản hiện đại có thể làm những điều hoàn toàn tuyệt vời với tính năng nén và lưu chọn lọc, vì vậy đây gần như là một điểm cần thiết.
3 Chiến lược tốt để bắt đầu với kiểm soát phiên bản để phân tích dữ liệu với R (ví dụ: ví dụ, ý tưởng quy trình làm việc, phần mềm, liên kết đến hướng dẫn) là gì?
Giữ các tệp tạo dữ liệu hoặc báo cáo dưới sự kiểm soát phiên bản, hãy chọn lọc. Nếu bạn đang sử dụng một cái gì đó như Sweave
, lưu trữ các .Rnw
tệp của bạn chứ không phải các .tex
tệp được sản xuất từ chúng. Lưu trữ dữ liệu thô nếu nó sẽ là một nỗi đau để có được lại. Nếu có thể, hãy viết và lưu trữ một tập lệnh lấy dữ liệu của bạn và một tập lệnh khác để dọn dẹp hoặc sửa đổi nó thay vì lưu trữ các thay đổi đối với dữ liệu thô.
Đối với việc tìm hiểu một hệ thống kiểm soát phiên bản, tôi đánh giá cao Git và hướng dẫn này cho nó.
Các trang web này cũng có một số mẹo và thủ thuật hay liên quan đến việc thực hiện các hành động cụ thể với Git: