2012-08-10 19 views
10

Xin chào tôi đã có ý nghĩa để làm quen với điều này một thời gian, nhưng tôi muốn sử dụng git để duy trì một số trang phát triển typo3. Tôi đã làm một số đào xung quanh và thông tin nhất (chromium translated site) thông tin về chủ đề không rõ ràng nhưng đã làm cho tôi nghĩ. Tôi muốn biết làm thế nào để thiết lập một repo git quản lý và nếu có một số/thư mục khác mà tôi nên bỏ qua khi thiết lập repo, những gì tôi nên cảnh giác, thực hành tốt nhất, vv Tôi đã quyết định rằng với mỗi phiên bản , một bãi chứa db sẽ được thực hiện một cách riêng biệt tương ứng với mốc quan trọng bởi vì bây giờ tôi không chắc chắn làm thế nào để đối phó với khía cạnh này của CMS versioning.Cách tốt nhất để quản lý cài đặt TYPO3 bằng git?

+1

Liên kết đã chết, có thể đã lỗi thời, nhưng đây là những gì còn lại: http://web.archive.org/web/20130706031806/http://www.chmuul.net/2010/02/saubere- git-repositories-fur-typo3-projekte –

Trả lời

18

Có là điển hình .gitignore

/fileadmin/user_upload/ 
/fileadmin/_temp_/ 

/uploads/ 

/typo3conf/temp_CACHED* 
/typo3conf/temp_fieldInfo.php 
/typo3conf/localconf_local.php 

/typo3/ 
/t3lib/ 
/typo3temp/ 

Hãy ghi nhớ rằng khi sử dụng TYPO3 với git bạn không nên cài đặt bất kỳ phần mở rộng trên điều khiển từ xa với Extension Manager!

Thay vào đó, hãy nhập địa chỉ máy lẻ cục bộ, cài đặt cục bộ và sau đó cam kết và đẩy các tệp của máy lẻ và sửa đổi localconf.php thành máy chủ từ xa.

Vào cuối của localconf.php bao gồm localconf_local.php (bỏ qua)

@include('localconf_local.php'); 

Nó sẽ cho phép ghi đè lên tức. thông tin đăng nhập cho DB hoặc đường dẫn ImageMagick tùy chỉnh mà không thay đổi localconf.php gốc. Mỗi dev trong nhóm của khóa học viết giá trị của riêng mình để localconf_local.php.

Thư mục TYPO3 điển hình bị bỏ qua trong .gitignore phải được tạo theo cách thủ công ở từng ví dụ.

typo3temp

fileadmin/user_upload

Tất nhiên bạn cũng cần tải Typo3 sorces (typo3, t3lib thư mục) - không có ý nghĩa lớn hơn để giữ chúng dưới sự kiểm soát phiên bản.

Những thứ khác, như uploads phải được tải xuống theo cách thủ công từ xa, vì vậy tốt nhất bạn nên viết tập lệnh sẽ đóng gói và mọi nhà phát triển sẽ có khả năng tải xuống bằng một số liên kết. Bạn không thể thêm điều này vào git repo vì các tệp này vừa được tạo trong khi tạo phần tử nội dung, vì vậy nếu bạn không bỏ qua chúng, bạn sẽ gặp phải xung đột hợp nhất rất lớn.

+1

Cảm ơn lời khuyên dành cho cả hai bạn. Tôi sẽ chấp nhận câu trả lời sau khi tôi đã thực hiện thành công việc này trong một vài ngày tới. –

+1

Bạn nên cẩn thận, ví dụ: "/.git/config" không được hiển thị công khai thông qua HTTP (tôi đã làm cho nó trở thành một thói quen để đặt công cụ typo3 trong một/public/thư mục con). sửa: haha, chmuul.net là blog của tôi :) Nếu bạn có thêm bất kỳ câu hỏi nào, vui lòng hỏi. – AaL

+0

Lưu ý bổ sung: Tôi sẽ xem liệu tôi có thể viết lại hướng dẫn chi tiết hơn, được dịch sang tiếng Anh và với biên lai capistrano của tôi hay không. – AaL

10

Tôi muốn thêm một số khía cạnh vào câu trả lời rất tốt Nếu bạn sử dụng các phần mở rộng, do đó bạn sẽ sử dụng phiên bản mới nhất từ ​​kho lưu trữ TER. Cấu hình mở rộng (thiết lập bản in, giá trị locallang) sẽ được đặt trong các tệp bên ngoài trong fileadmin /. Cấu trúc thư mục mẫu:

fileadmin/ 
- css/ 
- images/ 
- javascript/ 
- scripts/ 
- templates/ 
- - html/ 
- - templavoila/ 
- - typoscript/ 
- - xml/ 

Không lưu trữ bất kỳ thông tin typoscript nào trong cơ sở dữ liệu - nó không thể được phiên bản từ đó.

Đặt .gitignore nếu cần. Chúng tôi cũng bỏ qua typo3conf/ext/typo3conf/l10n/. Tại sao? Nếu chúng ta viết các phần mở rộng của riêng mình (hoặc sửa đổi các phần mở rộng hiện có), chúng tôi thêm typo3conf/ext/my_extensionname/ vào một kho lưu trữ khác. Bằng cách này, bản thân phần mở rộng có thể được duy trì tốt, đặc biệt nếu được sử dụng trong nhiều dự án.Và phần mở rộng không thay đổi không cần phải được phiên bản nào cả.

Làm theo đề xuất @include('localconf_local.php'); - đây là phương pháp hay.

Cài đặt này thêm nhu cầu cao hơn về kỷ luật mã hóa, nhưng bạn sẽ được thưởng! Chúng tôi đã làm việc thành công như vậy cho hơn 12 dự án bây giờ trong một nhóm hai người.

+0

Chúng tôi hiện đang lưu trữ toàn bộ thư mục/thư mục trong kho lưu trữ git. Bạn đang sử dụng kỹ thuật gì để có được tất cả các tiện ích mở rộng ở đúng nơi từ các kho lưu trữ trong một hệ thống triển khai tự động? Git submodules có vẻ thực sự không linh hoạt và rất nhiều chi phí quản trị. Sử dụng kỹ thuật git subtree bạn luôn có thể trích xuất phần mở rộng đến một kho lưu trữ riêng biệt nếu bạn muốn. Tôi nghĩ rằng lưu trữ tất cả các phần mở rộng trong kho khác nhau là rắc rối hơn nó có giá trị. Xin vui lòng cho tôi biết về lập luận của bạn để làm điều này. – Ivo

+1

Có thể có một sự hiểu lầm: Chúng tôi chỉ bao gồm các phần mở rộng mà chúng tôi đang phát triển bản thân, trong hầu hết các dự án chỉ có một hoặc hai. Tất cả các phần mở rộng khác được bỏ qua bởi 'typo3conf/ext /' trong '.gitignore' – Mateng

Các vấn đề liên quan