2008-12-28 31 views
6

Tôi làm việc tại một Studio Phát triển LAMP nhỏ, nơi ý tưởng đã được chỉ làm cho mã được thực hiện và chuyển sang mục tiếp theo trong danh sách.Chuyển đổi nhóm phát triển từ FTP sang Hệ thống Phiên bản

Nhóm làm việc trong Zend Studio 5.5 được kết nối với máy chủ Live qua FTP hoặc SFTP. Những gì họ yêu thích về điều này là tốc độ triển khai mã của họ (kể từ khi nó chỉ thay đổi mã trực tiếp).

Nhưng tất nhiên điều này không tốt vì nhiều lý do hiển nhiên.

Tôi muốn chuyển chúng sang Hệ thống phiên bản (CVS, SVN hoặc bất kỳ công cụ nào khác) nhưng bắt được, tôi không phải là người cao cấp của họ nên tôi cần một củ cà rốt để họ bắt đầu sử dụng.

Tôi cần phải thiết lập loại thiết bị nào trên máy của mình để có thể mã hóa như bình thường?

Điều tôi sẽ làm là tạo thiết lập này trên máy của tôi và sau đó hiển thị chúng.

Tôi biết điều này thật bất thường nhưng nó trở thành niềm đam mê của tôi để thay đổi cách suy nghĩ của họ từ việc hack mã thông thường đến cấu trúc và sự thanh lịch. Cảm ơn.

UPDATE (cho câu trả lời Jonathan Leffler của):

  1. Không
  2. Vâng, họ thực sự làm

Câu hỏi cũng có, studio làm cho một hệ thống CMS tập trung được lưu trữ trên hàng trăm trang web, họ cần phải sửa đổi các trang web riêng lẻ, các trang web có nên nằm trong kho lưu trữ chính hay trong trang web của riêng họ không?

+0

Câu trả lời cho quý 1 "Có, họ chưa bao giờ có thảm họa"? Hay là "Có, họ đã có những thảm họa mà họ không thể lấy lại"? Xin lỗi, câu hỏi là mơ hồ. –

+0

Câu trả lời cho câu hỏi "nhiều trang web trong kho lưu trữ chính" của bạn là "nó phụ thuộc". Nhưng tôi sẽ cực kỳ khó chịu với một hệ thống mà các nhà phát triển không có VCS tốt tại chỗ cho trang web * my * và CMS của tôi. Nó phải thuộc VCS. –

+0

Câu trả lời là có họ đã có thiên tai. –

Trả lời

7

Câu hỏi:

  1. Có bạn (họ) chưa bao giờ có một thảm họa, nơi bạn (họ) cần thiết để trở lại một phiên bản trước của trang web nhưng có thể không phải vì họ muốn phá vỡ nó?

  2. Họ có sử dụng máy chủ web dàn dựng để kiểm tra thay đổi không?

  3. Chắc chắn họ không sửa đổi mã trong máy chủ sản xuất mà không cần thử nghiệm ở đâu đó?

Tôi nghi ngờ câu trả lời đầu tiên là "có (họ đã có thiên tai)" và thứ hai "không" và tôi ngần ngại đoán câu trả lời cho câu hỏi thứ ba (nhưng từ âm thanh của nó, câu trả lời có thể là "có, họ thực sự làm"). Nếu đó là chính xác, tôi ngưỡng mộ dũng cảm của họ và ngạc nhiên rằng họ không bao giờ phạm sai lầm. Tôi không bao giờ có nguy cơ thay đổi trực tiếp trên một trang web trực tiếp.

Tôi khuyên bạn nên sử dụng hệ thống kiểm soát phiên bản hoặc VCS (bất kỳ VCS) nào. Làm việc ra các nếp nhăn cho mã bạn chăm sóc, và phát triển phân phối mượt mà làm cho nó dễ dàng (có lẽ vẫn còn sử dụng SFTP) để phân phối mã VCS đến trang web. Nhưng cũng cho thấy rằng việc bảo tồn các phiên bản trước có giá trị của nó - bởi vì bạn có thể phục hồi ai đã làm gì khi. Để bắt đầu, bạn có thể thấy rằng bạn cần tải xuống phiên bản hiện tại của bất kỳ trang nào (tệp) mà bạn cần làm việc và đưa phiên bản mới nhất đó vào VCS trước khi bạn bắt đầu sửa đổi trang, bởi vì ai đó có thể đã sửa đổi nó vì nó được cập nhật lần cuối trong kho lưu trữ chính của bạn.Bạn cũng có thể muốn thực hiện 'cạo' hàng ngày của các tệp để nhận các phiên bản hiện tại - và theo dõi các thay đổi. Bạn sẽ không có 'ai', cũng không chính xác 'khi nào' (tốt hơn ngày gần nhất), cũng không phải là 'tại sao', nhưng bạn sẽ có (tích lũy) 'cái gì' của những thay đổi.


Để trả lời nhận xét trong câu hỏi, Ólafur Waage đã làm sáng tỏ rằng họ đã có thảm họa do thiếu VCS.

Điều đó thường làm cho cuộc sống dễ dàng hơn nhiều. Họ bị bẻ cong; họ không thể hoàn tác cú đánh - họ có lẽ đã gây khó chịu cho khách hàng, và họ đáng lẽ phải cực kỳ khó chịu với bản thân. Một VCS làm cho nó dễ dàng hơn nhiều để phục hồi từ những sai lầm như vậy. Rõ ràng, đối với bất kỳ trang web tùy chỉnh cụ thể nào, bạn cần bản sao lưu (trung tâm) của phiên bản 'chính xác' hoặc 'chính thức' của trang web đó có sẵn trong VCS. Tôi có lẽ sẽ đi cho một kho lưu trữ duy nhất cho tất cả các khách hàng, sử dụng một VCS có hỗ trợ tốt cho phân nhánh và sáp nhập. Đó có thể là khó khăn hơn để đối phó với lúc đầu (trong khi mọi người đang nhận được sử dụng để sử dụng một VCS), nhưng có thể dẫn đến kết quả tốt hơn trong dài hạn. Tôi nghiêm túc xem xét sử dụng trên của VCS phân phối hiện đại (ví dụ, git), mặc dù rất nhiều người sử dụng SVN quá (mặc dù nó không phải là một VCS phân phối).

+0

Cảm ơn bạn đã cập nhật và trả lời. –

2

bạn có thể sử dụng rùa khách hàng svn để tạo và làm việc với một kho lưu trữ trên máy tính địa phương của bạn trên một số đường dẫn tập tin khác thì con đường làm việc của bạn là ....

có thể cố gắng để thiết lập và sử dụng cho bản thân và chương trình sau một thời gian những gì nó có thể làm cho bạn. một điều thú vị khác có thể là cài đặt trac (http://trac.edgewall.org/) trên máy chủ của bạn nếu bạn có quyền truy cập và đặc quyền để làm như vậy, hoặc có thể trong một số máy ảo trên máy phát triển của riêng bạn. bạn có thể bản đồ trac để svn của bạn và nhận được thay đổi svn trong giao diện web mà bạn có thể hiển thị cho người quản lý dự án. có thể anh ta sẽ rơi cho rằng anh ta sẽ có thể thấy những thay đổi mã dễ dàng thông qua giao diện web. tất nhiên, bạn có thể làm điều đó chỉ với mô-đun apache + svn, nhưng điều này đẹp hơn vì nó cung cấp đường dẫn đến vé và lộ trình (các cột mốc và thứ mà người quản lý có thể đào: o)) ..

may mắn anyhow :) . ít nhất, sử dụng nó cho công việc của bạn trên máy địa phương của bạn vì chỉ có một lợi ích cho bạn làm điều đó.

+0

Yêu thích nhận xét về kết nối với trac, cảm ơn. –

+0

Tôi yêu phần mềm, đã xem nó một thời gian và chỉ nhận được nó thiết lập 2 tuần trước, và tôi là người hạnh phúc nhất kể từ đó ... :). đơn giản, hữu ích, dễ sử dụng ... và dễ dàng cài đặt 0.11.x. tôi đã nhận nó và chạy trong debian sạch được cài đặt trong máy ảo trong ít hơn nửa giờ. – zappan

2

Bạn có thể cài đặt SVN trên hệ thống cục bộ của bạn cho bản trình diễn. Có một số công cụ để tích hợp Zend và Eclipse vào SVN. Tôi nghĩ rằng ngoài việc làm một bản demo của SVN, bạn có lẽ nên cung cấp cho họ một bài thuyết trình về một số lợi ích mà nó sẽ mang lại (có thể là trong bản demo).

Tới liên kết này đối với một số ý tưởng: Do I Really Need Version Control?

1

Ólafur, bạn nói rằng "studio làm cho một hệ thống CMS được lưu trữ trên hàng trăm trang web." Bản thân nó có thể là củ cà rốt mà bạn cần. Nếu nhóm thường triển khai bản cập nhật cho hàng trăm trang web này, thì việc sử dụng các nhánh bên trong hệ thống kiểm soát phiên bản có thể làm cho quy trình này dễ dàng hơn cho tất cả mọi người. Đó có thể là một tiết kiệm thời gian rất lớn và do đó sẽ cung cấp một động cơ để mọi người tìm hiểu hệ thống kiểm soát phiên bản.

Có vẻ như các trang web này là tất cả các phiên bản tùy chỉnh có liên quan của cùng một CMS. Trong trường hợp đó, bạn nên đặt tất cả các trang web trong cùng một kho lưu trữ, ngoài sản phẩm CMS không được tùy chỉnh. Sau đó, bạn có thể cấu hình tất cả chúng như các nhánh của cùng một sản phẩm trung tâm. Nếu bạn sử dụng kho lưu trữ riêng biệt, không có cách dễ dàng để tạo chi nhánh để liên kết các tùy chỉnh với sản phẩm chính. (Tôi nghĩ rằng bạn thể làm điều đó với Subversion, và nhiều khả năng những người khác, nhưng nó phức tạp và không cần thiết nếu tất cả các nhà phát triển làm việc cho cùng một tổ chức.)

+0

Xin lỗi tôi đã nói rằng bản thân CMS là tập trung nhưng bạn có một điểm vì có một số yếu tố trong mỗi trang web mà tôi muốn chúng tôi có thể thay đổi. –

0

VisualSVNServer và TurtoiseSVN là hai chương trình tôi sử dụng, họ đều tài liệu tốt và nó tích hợp rất tốt với Windows Explorer và Visual Studio.

0

Làm cho phần triển khai của quy trình 'xây dựng' được tự động để không có nhà phát triển nào phải lo lắng về điều đó. Sử dụng 'suối' để tiếp tục làm việc trong khu vực phát triển, khu vực qa và khu vực phát hành sau đó có các quy trình tự động triển khai môi trường phát triển, qa và phát hành mới nhất.

+0

Các luồng khác có thể là tất nhiên. – Brody

2

Dưới đây là một thủ thuật mà tất cả mọi người sẽ yêu mến:

tôi bao gồm này 'cắm' ở hầu hết các địa điểm sản xuất của tôi: Ofcourse, bạn cần phải tạo một tài khoản hạn chế quyền con robot svn cho lần đầu tiên này và svn phải được cài đặt trên máy chủ.

echo(' updating from svn<br>'); 
    $username = Settings::Load()->Get('svn','username'); 
    $password = Settings::Load()->Get('svn','password'); 
    echo(" <pre>"); 
    $repos = Settings::Load()->Get('svn' , 'repository'); 
    echo system ("svn export --username={$username} --password {$password} {$repos}includes/ ".dirname(__FILE__)."/../includes --force"); 
    echo system("svn export --username={$username} --password {$password} {$repos}plugins/ ".dirname(__FILE__)."/../plugins --force"); 

    die(); 

Đảm bảo bạn đặt mã này sau mã nguồn .htpasswded, và đảm bảo bạn không cập nhật 'cài đặt sản xuất' từ SVN. Et voila, Bạn cập nhật cơ sở mã hoàn chỉnh của bạn với một truy vấn HTTP vào trang của bạn :) SVN tự động ghi đè lên các tệp, không có tệp hoặc thư mục ẩn nào bị bỏ lại và dễ dàng cập nhật hoặc hoàn nguyên về phiên bản cụ thể. Bây giờ tất cả các nhóm của bạn cần làm là cam kết kho SVN của họ, chạy đoạn mã này trên môi trường thử nghiệm, đảm bảo mọi thứ hoạt động và sau đó chạy nó trên sản xuất :)

+0

Rất hay, id cung cấp cho bạn nhiều hơn + nếu tôi có thể. –

0

Chỉ cần đặt SVN ở chính giữa.

Nhóm dev đưa nội dung mới vào trang chủ, và sau đó bạn có tập lệnh xuất nội dung từ svn và gửi nó lên máy chủ web.

này khá gần với cách họ làm việc ngày hôm nay, nhưng mọi thay đổi nhỏ đã được ghi nhận trong subversion vì vậy nếu sét đánh có thể sao lưu tất cả mọi thứ trong thời gian rất nhanh.

/Johan

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