LƯU Ý: Tôi sẽ nói sâu về chủ đề này trong hội thảo trên web hàng tháng về Access và SQL Server sắp tới vào ngày 9 tháng 7 lúc 6:30 chiều theo CDT. Đăng ký để bạn có thể xem trực tiếp quá trình và đặt câu hỏi!
Khi chúng tôi làm việc với một số ứng dụng và đôi khi trong một nhóm, kiểm soát mã nguồn là khá quan trọng để quản lý các thay đổi. Chúng tôi bắt đầu yêu thích việc sử dụng git cho các dự án của mình. Ban đầu, sử dụng git với Access sẽ là một thách thức nhưng nhờ có một bổ trợ có tên OASIS-SVN, chúng tôi có thể sử dụng hiệu quả git với các dự án Access để quản lý các thay đổi.
Tại sao sử dụng điều khiển mã nguồn? Bạn không thể nén nó lên được không?
Mục tiêu chính đằng sau việc kiểm soát mã nguồn là có thể dễ dàng trả lời whodunit.
Điều đó đặc biệt quan trọng khi bạn đang xử lý một báo cáo lỗi và bạn được nhắc rằng bạn đã nhìn thấy điều gì đó tương tự trước đây và bạn nghĩ rằng có thể bạn đã sửa lỗi đó nhưng khách hàng vẫn báo cáo. Tuy nhiên, khi lỗi được "sửa" cách đây sáu tháng, nó cũng có thể là một lỗi hoàn toàn mới vì chúng tôi đã quên về bản sửa lỗi mà chúng tôi đã đưa vào 6 tháng trước. Tôi không biết về bạn nhưng khách hàng tiềm năng tìm kiếm một loạt các bản sao lưu nén không cảm thấy ... có thể khám phá được.
Việc đưa các thay đổi của bạn vào kiểm soát mã nguồn đòi hỏi phải có kỷ luật nhưng sẽ giúp việc xem xét và quản lý các thay đổi dễ dàng hơn nhiều. Bạn có thể dễ dàng tìm kiếm lịch sử và xem chính xác những gì thay đổi.
Một kịch bản khác là tìm ra những gì chính xác đã thay đổi. Nếu bạn đã thực hiện một số thay đổi và bạn cần xem lại chúng trước khi đưa ra phiên bản mới, thì đó là nơi kiểm soát mã nguồn giúp bạn. Bạn có cơ hội kiểm tra công việc của mình và đảm bảo rằng bạn đã làm tất cả những gì bạn đã đặt ra. Không còn "Tôi nghĩ rằng tôi đã làm điều đó rồi." chỉ để được khách hàng cho biết rằng bạn đã quên chi tiết nhỏ mà khách hàng đã hỏi bạn về tuần trước. Hơn nữa, điều này cho phép nhóm thực hiện đánh giá mã cho những người khác; chúng ta có thể xem xét công việc của người khác và đưa ra phản hồi cũng như giúp nhau duy trì tiêu chuẩn chất lượng cao.
Tại sao lại là git? Quyền truy cập hoạt động với Visual SourceSafe phải không?
Trong các phiên bản trước Access 2013, Access đã hỗ trợ kiểm soát mã nguồn nguyên bản nhưng nó đã sử dụng đặc điểm kỹ thuật độc quyền của Microsoft, MSSCCI. Để làm cho nó tồi tệ hơn, đặc tả giả định một mô hình check-out / check-in cung cấp cho các nhà phát triển một khóa độc quyền đối với các đối tượng mà họ đang làm việc. Hơn nữa, các bảng trong ứng dụng Access về cơ bản là một khối lớn không thể đọc được chứ đừng nói đến việc xem xét.
Trong thực tế, mô hình như vậy rất cồng kềnh để sử dụng ngay cả trong một nhóm nhỏ. Một vấn đề chính là một yêu cầu thay đổi hiếm khi được xác nhận với chỉ một đối tượng; các nhà phát triển có thể thấy mình cần phải chạm vào nhiều đối tượng và do đó, có thể không tránh khỏi va chạm, đặc biệt là đối với các mô-đun lõi / chia sẻ.
Git tránh tất cả những điều xấu xí mà chúng ta thấy với mô hình check-out / check-in cũ nhưng điều này đòi hỏi một triết lý khác trong việc quản lý các thay đổi. Thay vì kiểm tra thứ gì đó, chúng tôi chỉ làm việc với một nhánh và khi chúng tôi hoàn thành việc đó, chúng tôi sẽ hợp nhất nó trở lại nhánh chính. Chúng ta có thể có nhiều nhánh song song nếu chúng ta muốn mặc dù trong thực tế, chúng ta chỉ cần 2 hoặc 3 nhánh song song; một để đại diện cho phiên bản sản xuất; khác để phát triển và có thể là một thứ ba để sửa các lỗi quan trọng. Điều này có thể được thực hiện với một dự án Access và nên làm như vậy. Nếu không, có thể rất khó theo dõi những gì đang đi vào tệp sản xuất, đặc biệt là đối với các ứng dụng không tầm thường.
Một nguồn tài liệu tuyệt vời để học git có thể được tìm thấy ở đây; nó có một hộp cát để bạn có thể chơi cùng. Nếu bạn giống như tôi và thích ăn những món nhỏ và biết cách hoạt động của nó, thì đây là một nguồn tốt.
Cuối cùng, chỉ cần ngừng sử dụng Visual SourceSafe đã. Đó là lỗi, dễ bị mất dữ liệu của bạn và chưa được hỗ trợ cho _years_, thậm chí không được Access kể từ năm 2013.
Nhưng nếu Access 2013+ không còn hỗ trợ kiểm soát mã nguồn nữa, thì làm sao chúng ta có thể có nó?!?
Vì OASIS-SVN không phải là nhà cung cấp MSSCCI mà chỉ là một phần bổ trợ Access thuần túy. Có những phần bổ trợ Access tương tự khác (ví dụ:Ivercy chẳng hạn) hoạt động xung quanh hạn chế. Trong mọi trường hợp, các phần bổ trợ đó sử dụng nhiều các phương pháp không có tài liệu chính xác mà Access đã sử dụng nội bộ để kiểm soát mã nguồn; Application.SaveAsText và Application.LoadFromText . Các phương pháp đó vẫn có trong phiên bản Access hiện tại. Ngoài ra, có một mục UV để ghi lại nó để đảm bảo tính liên tục. OASIS-SVN tiếp tục hoạt động tốt ngay cả với phiên bản Access hiện tại.
Tại sao bạn cứ nói về OASIS-SVN và git? Tôi có thể chỉ sử dụng cái này hay cái khác không?
Điều quan trọng là phải hiểu rằng cả hai công cụ đều bổ sung cho nhau và bạn cần cả hai. Hãy xem, lý do tại sao bạn cần OASIS-SVN là để giúp bạn dễ dàng thực hiện công việc khó khăn của mình và thể hiện chúng dưới dạng một loạt các tệp văn bản, thay vì đặt chúng trong một khối lớn của tệp nhị phân là Tệp ACCD *. Không có ý nghĩa gì nếu tệp ACCDB được kiểm soát mã nguồn bởi vì nó sẽ không có lịch sử thay đổi thích hợp và phần lớn sẽ không thể đọc được. Do đó, OASIS-SVN là công cụ để tạo các tệp văn bản có thể được sử dụng để xây dựng lại ứng dụng Access của bạn và công việc thực sự là mã nguồn các tệp đó. Git không thể và không nên hoạt động với tệp ACCDB.
Nếu bạn chưa quen với git, bạn có thêm một bước so với những gì người khác thường làm trong các dự án Visual Studio của họ bởi vì bạn đang làm việc với một tệp nhị phân, không phải một tập hợp thư mục thực tế với nhiều tệp văn bản có phần mở rộng vui nhộn. Vì vậy, bạn sẽ cần có thói quen xuất / nhập nhất quán các thay đổi của mình giữa tệp ACCDB và tệp văn bản tạo nên kho lưu trữ git của bạn.
Điều kiện tiên quyết
Để bắt đầu, chúng tôi cần 3 phần mềm:
- Git dành cho Windows
- TortoiseGit
- OASIS-SVN
Nói một cách chính xác, bạn không cần phần mềm thứ 2 và thứ 3. Bạn thực sự có thể làm chỉ với thao tác đầu tiên nhưng nhược điểm lớn là bạn phải xuất / nhập theo cách thủ công bằng cách viết mô-đun VBA của riêng bạn để làm điều này và tin tôi đi, đó là rất nhiều công việc vì những lý do sẽ trở nên rõ ràng hơn như chúng ta cùng theo dõi. Vì vậy, OASIS-SVN rất được khuyến khích. Bạn cũng không nhất thiết phải có TortoiseGit, nhưng tôi thực sự thích có GUI để làm việc dễ dàng. Điều đó có thể làm mất lòng một số người theo chủ nghĩa thuần túy dòng lệnh, những người sẽ nói với bạn rằng bạn chỉ nên sử dụng git trong một dòng lệnh, không phải thông qua GUI đẹp. Tuy nhiên, tôi thích nó lười biếng và nhanh chóng và hầu hết thời gian, quá trình này đơn giản đến mức tôi chỉ thực hiện lệnh từ menu sẽ nhanh hơn là mở bash shell và nhập một số lệnh. Điều đó nói lên rằng, TortoiseGit thực sự chỉ là một lớp bao bọc mỏng đối với các lệnh git, vì vậy bạn nên chú ý kỹ đến lệnh git mà nó chạy và ý nghĩa của nó.
Cài đặt tất cả chúng; Tôi sẽ tham khảo các trang web tương ứng của họ để biết hướng dẫn chi tiết. Khi mọi thứ đã được thiết lập xong, bạn cần có một dự án mà bạn muốn kiểm soát. Hơn nữa, bạn cần một nơi để hoạt động như một kho lưu trữ ngược dòng của mình. Có thể bạn có tài khoản Azure DevOps? Cai Xô nhỏ? GitHub? Có một số tùy chọn có sẵn cho bạn để lưu trữ quyền kiểm soát mã nguồn của bạn. Rất tiếc, nếu bạn thích, bạn thậm chí có thể thiết lập một máy chủ git riêng. Nhưng điều đó cũng nằm ngoài phạm vi của bài báo. Một lần nữa, tôi giới thiệu cho bạn tài liệu của nhà cung cấp tương ứng để thiết lập kho lưu trữ trống.
Khi bạn có một kho lưu trữ trống, bạn sẽ được cung cấp một liên kết đến nó. Chúng tôi sử dụng Auzre DevOps và chúng tôi đã tạo một kho lưu trữ mới tại URL này:
https://samplecompany.visualstudio.com/DefaultCollection/z_Sandbox/_git/SampleApplication
Bây giờ chúng tôi đã có liên kết cho một kho lưu trữ trống, chúng tôi có thể thiết lập.
Tạo kho lưu trữ cục bộ
Mặc dù OASIS-SVN có một trình hướng dẫn, nhưng tôi thấy việc sao chép kho lưu trữ hiện có và làm việc từ đó dễ dàng hơn. Bạn có thể thoải mái sử dụng trình hướng dẫn này sẽ thực hiện một số việc tương tự nhưng tôi nghĩ việc làm theo hướng dẫn thủ công sẽ giúp bạn hiểu điều gì đang thực sự xảy ra và làm việc với các công cụ này dễ dàng hơn. Chúng tôi sẽ giả sử rằng chúng tôi có một ứng dụng trong một thư mục cụ thể:
Thư mục Nguồn trống và sẽ là nơi chúng tôi chứa các tệp văn bản cho kho lưu trữ cục bộ của chúng tôi. Chúng tôi có thể nhấp chuột phải vào khoảng trắng trong thư mục để mở TortoiseGit menu ngữ cảnh và chọn kho lưu trữ sao chép.
Trong hộp thoại mở ra, hãy nhập URL bạn nhận được từ nhà cung cấp dịch vụ lưu trữ của mình:
CHÚ Ý
Lưu ý rằng mặc định là sử dụng tên của kho lưu trữ từ URL làm thư mục thư mục mới. Khi bạn dán URL vào hộp thoại, TortoiseGit sẽ tự động điền vào thư mục. Nếu bạn không thích mặc định, bạn có thể tự do điều chỉnh lại thành đường dẫn và đặt tên theo ý muốn. Lưu ý trong hình ảnh rằng thư mục có \ Nguồn , thay vì \ SampleApplication như sẽ là mặc định.
Sau đó, bạn sẽ nhận được một hộp thoại thành công rằng kho lưu trữ đã được nhân bản:
Như một hiệu ứng của sao chép, bây giờ bạn sẽ có một thư mục ẩn có tên .git . Đó là cách git theo dõi các cam kết và thay đổi của bạn trong kho lưu trữ cục bộ của bạn.
Bây giờ chúng tôi có một kho lưu trữ cục bộ đang hoạt động mà sau đó chúng tôi có thể sử dụng để giữ các tệp văn bản của chúng tôi từ Access. Chúng tôi sẽ cần định cấu hình OASIS-SVN để sử dụng điều này.
Định cấu hình OASIS-SVN
Như đã đề cập trước đây, OASIS-SVN có một trình hướng dẫn có thể được sử dụng để giúp chúng tôi thiết lập nhưng chúng tôi muốn thực hiện việc này theo cách thủ công để bạn quen với cách hoạt động của OASIS-SVN và do đó có thể sử dụng trình hướng dẫn một cách hiệu quả. Chúng tôi sẽ bắt đầu bằng cách đi tới Cài đặt trên tab ruy-băng OASIS-SVN.
Thao tác này sẽ mở ra hộp thoại. Hiện tại, chúng ta chỉ cần làm một việc duy nhất; thiết lập đường dẫn nguồn. Nói chung, tôi thấy thuận tiện hơn khi sử dụng đường dẫn tương đối hơn là đường dẫn tuyệt đối, vì vậy chúng tôi sẽ đưa vào \ Nguồn như minh họa:
Sau khi nhập, bạn nên chọn hộp kiểm luôn sử dụng
Điều đó làm cho thư mục kho lưu trữ tương đối và do đó cho phép bạn di chuyển thư mục dự án đến bất kỳ đâu bạn muốn. Nhưng hãy cẩn thận - nếu bạn sao chép hoặc di chuyển tệp Access bên ngoài thư mục đó, thì tệp đó không thể được giữ dưới quyền kiểm soát mã nguồn vì OASIS-SVN khi đó sẽ không có .oasis tệp OASIS-SVN cần. Nhấp vào OK để đóng hộp thoại để lưu các thay đổi đối với cài đặt. Nếu bạn nhìn vào thư mục, bây giờ bạn sẽ thấy .oasis tệp cho tệp ACCDB của bạn.
.oasis tệp chỉ là tệp XML chứa tất cả các cài đặt của dự án và nó phải có cùng tên với tệp ACCDB để OASIS-SVN biết rằng tệp ACCDB này phải nằm dưới sự kiểm soát của mã nguồn. Vì vậy, nếu bạn có thói quen đổi tên tệp ACCDB của mình, bạn sẽ cần phải phá bỏ thói quen đó. Nếu quy trình làm việc hiện tại của bạn liên quan đến việc đổi tên tệp, một cách tiếp cận mà tôi thấy hữu ích là sử dụng tên cố định cho bản sao phát triển (ví dụ: SampleApplication Dev.accdb , có lẽ), sau đó khi tôi cần thay đổi tên, tôi tạo một bản sao của tệp đó và cung cấp tên riêng. Cần phải nhấn mạnh rằng với nó trong kiểm soát mã nguồn, việc đổi tên như một phương tiện để theo dõi các phiên bản bây giờ ít có ý nghĩa hơn vì bạn có thể tạo lại nó từ lịch sử git thay vì có một loạt các bản sao được đặt tên khác nhau.
Định cấu hình phần còn lại của cài đặt
Ở bước trước, chúng tôi chỉ thiết lập tệp nguồn vì chúng tôi không có .oasis tập tin; nếu chúng tôi thực hiện bất kỳ thay đổi nào khác, nó có thể chưa được lưu, nhưng bây giờ chúng tôi đã tạo một thay đổi do thiết lập thư mục dự án, chúng tôi có thể xem lại phần còn lại của cài đặt. Có lẽ bạn nên xem xét có một mẫu .oasis để bạn có thể nhanh chóng sao chép và tinh chỉnh thủ công để có cài đặt dự án thống nhất cho các dự án Access khác nhau của bạn. Hãy quay lại Cài đặt trên ruy-băng và bắt đầu với tab đầu tiên trên hộp thoại.
Ngăn loại đối tượng
Bởi vì chúng tôi không còn làm việc với ADP và chúng tôi không sử dụng các Trang truy cập dữ liệu không được dùng nữa, chúng tôi thường bỏ chọn các trang đó để giảm thiểu sự lộn xộn của hộp thoại nhập / xuất. Bạn cũng có thể thấy hữu ích khi để nó tự động chọn thay đổi tự động, yêu cầu theo dõi dấu thời gian của đối tượng. Tuy nhiên, hãy lưu ý rằng dấu thời gian của đối tượng không hoàn toàn đáng tin cậy trong Access. Chúng ta sẽ thảo luận thêm về vấn đề này trong phần sau. Điều đó nói lên rằng, đó là một cách tốt để giúp bạn chỉ ra liệu bạn có thể đã quên gửi một đối tượng đi lạc nào đó hay không.
Ngăn tùy chọn bảng
Ngăn này sẽ yêu cầu một số suy nghĩ cẩn thận và sẽ phụ thuộc vào loại dự án bạn đang xử lý. Quy tắc số một là bạn _not_ muốn mã nguồn kiểm soát dữ liệu trong bảng của mình. Điều đó không có ý nghĩa, vì dữ liệu không phải là mã. Tuy nhiên, điều đó không phải lúc nào cũng đúng. Ví dụ:chúng tôi có một số bảng chúng tôi sử dụng làm dữ liệu cấu hình ứng dụng. Do đó, theo một nghĩa nào đó, các bảng đó là “mã” vì chúng ảnh hưởng đến cách ứng dụng sẽ hoạt động. Bởi vì phần lớn các dự án của chúng tôi là giao diện người dùng Access với phần phụ trợ SQL Server, các bảng thường hiện diện chủ yếu chỉ là bảng cấu hình và do đó thích hợp cho việc kiểm soát mã nguồn. Nhưng, nếu chúng ta có các bảng dữ liệu, thì chúng có thể không nên đưa vào. Đó là nơi Nâng cao nút có ích. Nhấp vào đây sẽ mở hộp thoại này:
Bằng cách bỏ chọn mục Xuất dữ liệu cho tất cả các bảng hộp kiểm ở dưới cùng, sau đó bạn có thể chọn dữ liệu của bảng mà bạn muốn giữ dưới sự kiểm soát của mã nguồn, loại trừ những dữ liệu chỉ là bảng dữ liệu và không phải là một phần của mã nguồn ứng dụng.
Chúng tôi cũng thường không bao gồm các bảng được liên kết ODBC bởi vì chúng tôi thường có quy trình mã để liên kết lại các bảng, vì vậy việc kiểm soát mã nguồn không có ý nghĩa đối với chúng tôi. Tuy nhiên, có bảng cấu hình ứng dụng hoặc thậm chí có thể chỉ là định nghĩa cho bảng cục bộ là một ý tưởng hay vì chúng tôi sẽ có một ứng dụng bị hỏng nếu chúng tôi tạo tệp từ kho lưu trữ git mà không có định nghĩa của các bảng đó.
Ngăn cài đặt
Chúng tôi đã thấy điều này trước đây khi chúng tôi tạo .oasis tập tin. Bây giờ chúng ta đã có tệp, chúng ta sẽ thiết lập phần còn lại của cài đặt. Đây là thiết lập điển hình của chúng tôi.
Như tôi đã đề cập ở phần đầu, bạn có thể hình dung ra quy trình nhập / xuất của riêng mình. Tuy nhiên, giá trị của OASIS-SVN là chúng tôi có thể giải quyết các vấn đề khác nhau tồn tại với việc giữ các tệp văn bản Access dưới mã nguồn. Ví dụ:tệp văn bản Access có thể có các trường điển hình ở đầu tệp:
Version =21
Những điều đó
VersionRequired =20
PublishOption =1
Checksum =-571006847
Begin Form
...
End Form
không tốt cho việc kiểm soát mã nguồn vì chúng có thể tạo ra những thay đổi không cần thiết và gây ô nhiễm lịch sử của những thay đổi không thực sự là những thay đổi. Tổng kiểm tra có thể thay đổi mặc dù bạn có thể không thực sự thay đổi bất kỳ điều gì về chính biểu mẫu. Với OASIS-SVN, chúng tôi có thể loại bỏ dữ liệu không cần thiết đó bằng cách sử dụng tùy chọn Xóa các tệp đã xuất :
Version =21
VersionRequired =20
Begin Form
...
End Form
Bạn có thể nhận thấy biểu tượng cảnh báo màu vàng cho các báo cáo. Lý do tại sao lại như vậy là vì OASIS-SVN cũng sẽ loại bỏ dữ liệu máy in vốn nổi tiếng là không tốt cho việc kiểm soát mã nguồn. Khi các báo cáo sử dụng máy in mặc định, đó thường không phải là vấn đề. Tuy nhiên, không có gì lạ khi tạo báo cáo phụ thuộc vào một máy in cụ thể. Ví dụ:có thể chúng tôi có một báo cáo đang tạo nhãn mã vạch trên một máy in chuyên dụng. Trong báo cáo đó, chúng tôi sẽ chọn một máy in cụ thể thay vì một máy in mặc định. Chọn hộp báo cáo đó có nghĩa là dữ liệu máy in sẽ bị xóa. Nếu dự án của bạn không phụ thuộc vào bất kỳ thiết lập máy in cụ thể nào, bạn có thể thấy dễ dàng hơn khi kiểm tra các báo cáo. Nếu không, không có lý do gì để không kiểm tra nó cho các biểu mẫu.
Vì những lý do tương tự, chúng tôi thực sự thích có Tệp biểu mẫu phân tách và Tệp báo cáo phân tách đã chọn. Thông thường, Application.SaveAsText sẽ xuất một tệp văn bản singe cho một đối tượng Access. Tuy nhiên, nếu bạn đã đọc tệp văn bản, bạn sẽ thấy rằng mã bố cục có thể… tẻ nhạt khi đọc. Kiểm tra tùy chọn này có nghĩa là chúng tôi nhận được 2 tệp văn bản cho mỗi đối tượng Access; một để chứa tất cả dữ liệu bố cục và mã nguồn VBA thực tế đằng sau biểu mẫu. Điều đó làm cho việc xem xét mã trở nên dễ dàng hơn nhiều vì bạn có thể tập trung vào các thay đổi VBA và hiểu những gì đã thay đổi, điều này giúp bạn dễ hiểu hơn về nội dung của thay đổi bố cục.
Bạn có thể nhớ lại điều đó từ phần trước về Loại đối tượng , chúng tôi đã chọn thay đổi, yêu cầu chúng tôi lưu ngày / giờ của đối tượng dưới dạng ngày / giờ tệp. Điều đó cũng được đánh dấu ở đây. Cần lưu ý rằng Access không phải lúc nào cũng đóng dấu thời gian một cách đáng tin cậy khi thay đổi các đối tượng. Chúng ta sẽ thảo luận lại vấn đề này trong phần sau về việc thực hiện cam kết.
Ngăn tích hợp
Chúng tôi thường muốn đảm bảo rằng tính năng tự động sửa luôn được tắt nhưng quan trọng hơn là tùy chọn sử dụng Ctrl + S làm phím bấm để thực hiện xuất. Điều đó rất hữu ích và tránh được sự cố với dấu thời gian của đối tượng Access. Tuy nhiên, điều này đòi hỏi kỷ luật để sử dụng nhất quán phím tắt để lưu các thay đổi. Bất cứ khi nào bạn thực thi bàn phím, bạn sẽ thấy hộp thoại này hiển thị ngắn gọn:
Điều đó đảm bảo rằng cây làm việc git của bạn được giữ đồng bộ gần như đồng bộ với tệp ACCDB đang hoạt động của bạn khi bạn làm việc thông qua các thay đổi. Điều quan trọng cần nhấn mạnh là bạn không cần phải e ngại về việc tiết kiệm thường xuyên - điều đó không có nghĩa là bạn cần phải thực hiện mọi lần tiết kiệm, nhưng bằng cách lưu thường xuyên, cây làm việc của bạn sẽ phản ánh chính xác mức độ thay đổi của bạn khi bạn sẵn sàng cam kết. Chúng ta sẽ thảo luận chi tiết về vấn đề đó trong phần sau.
CẬP NHẬT tự động trước khi nhập và CAM KẾT tự động sau khi xuất có vẻ như là một điều thuận tiện nhưng trên thực tế, chúng tôi nhận thấy rằng việc làm này theo cách thủ công sẽ thích hợp hơn nhiều, đặc biệt là khi chúng tôi xuất bằng phím tắt Ctrl + S vì chúng tôi không nhất thiết phải cam kết; chỉ lưu tiến trình công việc của chúng tôi để chúng tôi biết những gì sẽ thay đổi khi chúng tôi thực sự sẵn sàng cam kết. Vì lý do đó, chúng tôi bỏ chúng đi.
.oasis Cài đặt Tệp
Khi bạn nhấp vào OK trên hộp thoại cài đặt, những thay đổi bạn đã thực hiện trong các ngăn khác nhau sau đó sẽ được ghi vào .oasis tệp ở dạng XML. Như đã đề cập, bạn có thể sao chép nó và tạo một mẫu để bạn có một cách nhanh chóng để cấu hình một ứng dụng Access khác. Bây giờ chúng tôi đã sẵn sàng thực hiện một số kiểm soát mã nguồn thực tế.
Xuất và cam kết
Như đã đề cập ở trên, vì chúng ta đang làm việc với tệp nhị phân, chúng ta cần xuất mọi thứ thành dạng biểu diễn văn bản để chúng có thể được quản lý đúng cách bằng điều khiển mã nguồn. Để làm điều này, chúng ta cần xuất các đối tượng. Bạn có thể sử dụng nút xuất OASIS-SVN như được chỉ ra.
Bạn sẽ nhận được một hộp thoại với tất cả các loại đối tượng được liệt kê để xuất. Vì đây là lần xuất đầu tiên của chúng tôi, chúng tôi sẽ sử dụng Ctrl + A để chọn tất cả để xuất.
Nhấn OK để kết thúc quá trình xuất. Nếu mọi việc suôn sẻ, bạn sẽ nhận được một thông báo cho biết như vậy.
Nếu nhìn vào bên trong thư mục nguồn, bạn sẽ thấy tất cả các tệp văn bản đại diện cho các đối tượng khác nhau mà bạn vừa xuất. Lưu ý rằng quy ước đặt tên có thể khác nhau tùy thuộc vào những gì bạn đã chọn trong ngăn Cài đặt như được hiển thị trong phần trước. Cũng bởi vì chúng tôi đã chọn chia nhỏ tệp, chúng tôi có cả .def và .layout tệp cho một đối tượng Access.
Với các đối tượng được xuất dưới dạng tệp văn bản, bây giờ chúng ta cần cam kết các thay đổi của mình. OASIS-SVN cung cấp các lệnh TortoiseGit trực tiếp từ bên trong Access như được hiển thị.
Thông thường, 4 lệnh bạn sẽ muốn sử dụng được hiển thị ở đây - các lệnh khác rất tốt để sử dụng nhưng chúng ta không cần phải lo lắng về điều đó cho đến khi chúng ta chuyển sang các kịch bản git phức tạp hơn. Nhân tiện, những lệnh đó thực sự là cùng một lệnh được TortoiseGit hiển thị thông qua menu ngữ cảnh của Windows explorer:
Hơn nữa, một tập hợp con các lệnh có sẵn thông qua trình đơn nhấp chuột phải trên ngăn điều hướng Access:
Do đó, bạn có một số cách để thực hiện công việc với OASIS-SVN hoặc với TortoiseGit ngay ngoài Access hoặc bạn có thể chỉ sử dụng TortotiseGit trực tiếp từ Windows explorer. Lưu ý rằng bạn có Cam kết trong tất cả các ảnh chụp màn hình; đó sẽ là bước tiếp theo của chúng tôi. Chọn nó sẽ mở hộp thoại TortoiseGit:
Bạn thường sẽ muốn chọn tất cả. Lưu ý rằng nó chỉ theo dõi các tệp văn bản mà chúng tôi đặt trong thư mục dự án. Điểm đó rất đáng được nhấn mạnh; nếu bạn không xuất một đối tượng từ Access, git không thể biết về nó. Bạn cần cung cấp một thông báo cam kết mang tính mô tả; càng chi tiết càng tốt. Chúng tôi cũng thích thực hiện một số cam kết nhỏ vì theo cách đó lịch sử dễ hiểu hơn. Bạn không muốn thực hiện cam kết mỗi tuần một lần với 1000 thay đổi; điều đó sẽ không thể hiểu được. Bạn muốn có một cam kết sau khi hoàn thành một nhiệm vụ (ví dụ:sửa một lỗi cụ thể hoặc giới thiệu một tính năng) để lịch sử của bạn dễ hiểu.
Khi bạn có thói quen cam kết công việc của mình, bạn có thể muốn lưu ý rằng TortoiseGit cung cấp cho bạn 3 tùy chọn để cam kết:
Gửi lại rất hữu ích nếu bạn cần thực hiện nhiều cam kết vì bạn đã thực hiện 2 tác vụ trở lên và bạn muốn tách cam kết cho từng tác vụ. Có lẽ tốt nhất là không cần phải làm điều đó và cam kết ngay sau khi bạn hoàn thành nhiệm vụ nhưng nếu bạn cảm thấy hứng thú, bạn chỉ cần kiểm tra một tập hợp con các tệp bạn muốn cam kết và nhấp vào gửi lại. TortoiseGit sẽ chỉ cam kết các tệp tập hợp con đó, sau đó đặt lại hộp thoại cam kết để bạn có thể cam kết (các) tập hợp con khác bằng một thông báo riêng biệt.
Cam kết &Đẩy mạnh thường được sử dụng để kết hợp commit và push. Điều quan trọng cần nhớ là các cam kết chỉ ghi vào kho lưu trữ git cục bộ của bạn. Nhưng chúng tôi bắt đầu với việc có một kho lưu trữ từ xa. Bạn không thể chia sẻ các thay đổi mã của mình với đồng nghiệp hoặc sao lưu công việc từ xa cho đến khi bạn đẩy các cam kết cục bộ của mình lên máy chủ và đó là điều cần thiết. Chúng ta sẽ thảo luận chi tiết về vấn đề này sau.
Khi bạn cam kết, TortoiseGit sẽ cung cấp cho bạn một hộp thoại tiến trình và thông báo cho bạn nếu nó thành công.
Kết thúc
Cho đến nay, bạn đã học cách thiết lập kho lưu trữ git, cấu hình OASIS và thực hiện cam kết đầu tiên của mình. Tuy nhiên, điều đó hầu như không làm trầy xước bề mặt. Toàn bộ sức mạnh của git vẫn chưa rõ ràng cho đến khi bạn bắt đầu phân nhánh, đọc lịch sử và giải quyết xung đột. Tuy nhiên, đó hoàn toàn là những thứ git và ít liên quan đến Access hoặc OASIS; bất kỳ hướng dẫn chung nào về git mà chúng tôi đã liên kết ở đầu bài viết sẽ rất hữu ích để hiểu cách quản lý kho lưu trữ git. Cần nhắc lại rằng TortoiseGit chỉ là một trình bao bọc GUI mỏng trên các lệnh git, vì vậy ngay cả khi hướng dẫn nói về cách sử dụng bash shell, bạn sẽ có thể làm điều tương tự thông qua menu TortoiseGit có cùng tên. Có một vài câu hỏi? Hãy hỏi trong phần bình luận!