Початок роботи з Subversion, Git або подібною системою управління версіями для збереження історії моїх файлів? [зачинено]


31

Я розумію, що це може бути широким питанням на поверхні, але я шукаю конкретні приклади налаштувань / робочих процесів, які люди використовують для збереження історії версій відредагованих файлів на сайті WordPress. Наприклад, коли розробляю сайт (і навіть після того, як він з'являється у прямому ефірі), я часто вношу зміни до файлів CSS та PHP, але у мене немає чудового способу повернення до старих версій цих файлів. У моїх цілях внесення змін у локальну інсталяцію для розробки, а потім копіювання цих змін на веб-сайт, що перебуває в реальному часі, - це часто більше проблем, ніж я хотів би. Будь-які пропозиції щодо того, як почати використовувати інструмент версії для відстеження редагувань файлів на реальному сайті?


1
Просто цікаво, Майку - чому заголовок редагує? На мій погляд, заголовки питань повинні відповідати правилам граматики. Можливо, це гарна дискусія для мета ...
Травіс Нортчетт

Ви вже є частиною дискусії щодо мета, tnorthcutt. :)
Annika Backstrom

Відповіді:


14

Я не впевнений, скільки ви знаєте про використання версій, але я нещодавно перейшов з SVN на Git і вважаю, що це чудово!

Хоча це залежить від того, у вас на сервері живого сайту встановлений Git (або дозволить вам). У мене також є налаштування Git на живому сервері, який працює з гілки, яка називається щось на кшталт production. Щоразу, коли я закінчую реалізовувати / виправляти щось локально, я зливаю його у productionгілку, потім SSH на сервер живого сайту та втягую зміни. Перемагає перетягування файлів через FTP, коли ви ніколи не знаєте, чи перезаписуєте ви зміни тощо.

Я б рекомендував приділити трохи часу знайомству з Git (якщо ви ще цього не зробили), я вважаю, що це набагато простіше і менше клопоту, ніж SVN, коли мова заходить про зміну / додавання навантажень файлів (і на відміну від SVN, він не ставить дурних .svnпапки скрізь ).

Я на Mac, так що вибачте, якщо нічого з цього не застосовується, але я використовую Coda як редактор коду та встановив Git через порти (за допомогою Porticus).

Якби я все заново налаштував, я би зробив:

  1. Встановіть Coda

  2. Встановіть Porticus (який вимагатиме встановлення портів, але на цій сторінці є інформація)

  3. Після встановлення Porticus відкрийте його, знайдіть "git-core" та встановіть це.

  4. Завантажте та встановіть GitX 7-5

  5. Існує гарне керівництво по налаштуванню Git репо тут , але це основні: 1. Відкрийте термінал. 2. cdтуди, де ви хочете, щоб ваш сайт проживав. $: mkdir mysite && cd mysite3. $: git initі ось це! Якщо ви додаєте файли до цієї папки, перейдіть до наступного кроку

  6. Після того як ви локально створили сховище GIT (вище статті), тоді, якщо ви відкриєте цей каталог у GitX, ви зможете робити речі тощо тощо.

Налаштувати все це на сервері може бути дещо складним, у мене є MediaTemple та акаунт Dreamhost, у яких обидва мають GIT поза коробкою. Посилання на кроці 5 розповідає про те, як додати віддалене репо, тому вам не доведеться цього робити, поки ви не захочете внести свій живий сайт у рівняння. Я б рекомендував спочатку все працювати локально (на відміну від SVN, GIT не потребує віддаленого сховища, тому ви можете робити все на вашій машині на даний момент).


Чи можете ви детальніше розповісти про те, як виглядає ваш робочий процес, якими інструментами / редакторами ви користуєтесь, як налаштувати GIT на своєму прямому сервері тощо? Я сподіваюся на хороший покроковий посібник, як налаштувати щось на зразок GIT.
Травіс Нортчетт

Я додав кілька кроків для початку роботи, удачі!
Джо Хойл,

Також у вас є хороший підручник, який ви рекомендуєте для GIT? Я на Subversion і хотів перейти на віки через те, наскільки крихким може бути Subversion (а також через ті прокляті .svn папки! :)
MikeSchinkel,

Джо, дякую за додавання деталей. Я на ПК, але я можу шукати рівноцінні інструменти, і це повинно бути корисно для інших користувачів Mac.
Травіс Нортчетт

Я можу лише порекомендувати git. Це просто скелі. Незалежно від того, на якій ОС. Я використовую його на Linux і Windows часто (так би мовити: зараз кожен день). на вікнах є git bash. Чудова річ: у вас під рукою безпосередньо всі команди Linux: code.google.com/p/msysgit
жовтня 10.10

8

Я використовую SVN для контролю версій із усім, що я роблю в розробці WordPress. Я фактично розпочав цей шлях, тому що мені потрібен SVN для розробки плагінів ... як тільки я почав працювати там, це було природним розширенням продовжувати використовувати SVN для тем та спеціальних сценаріїв на клієнтських сайтах.

Плагіни

Оскільки плагіни вже розміщені на сервері WordPress, я просто перевіряю плагін безпосередньо до /wp-content/plugins/каталогу моєї локальної установки WordPress (я запускаю WAMP у вікні розробки). Потім я вношу зміни до своєї локальної копії і, коли вона буде готова до показу, переходжу до сховища. Там це плавний процес, без завантаження / завантаження та миттєвої перевірки того, що мої зміни спрацювали.

Теми

Теми дещо відрізняються, особливо при створенні для клієнта. Я створю локальний сховище (у мене є Rрозділ на жорсткому диску спеціально для цієї мети) і перевіряю порожнє сховище безпосередньо в моєму /wp-content/themesкаталозі. Потім я вношу зміни по мірі необхідності та розвиваюсь до тих пір, поки вона не буде готова, здійснюючи зміни, коли я йду.

Коли я готовий опублікувати тему на виробничому сервері клієнта, я експортую сховище, завантажую його в каталог і використовую вбудовані теми >> Додати нову функціональність у WordPress. Це працює і з користувацькими плагінами (які не розміщені WordPress).

Інструменти

Як я вже говорив, я використовую WAMP на своїй локальній машині, щоб запустити розробку WordPress. Він прекрасно працює на моєму вікні і дозволяє мені запустити стільки екземплярів WordPress, скільки мені потрібно для певного проекту.

Для SVN я використовую черепаху SVN . Він безкоштовний, надзвичайно простий у використанні та інтегрується з файловою та командною структурою Windows. Оновлення, фіксація та експорт - це прості клацання правою кнопкою миші, виберіть командні операції. Використання "Експортувати" дозволяє відправляти всю папку (без дратівливих .svnпапок) безпосередньо в будь-яке місце на ваш вибір - я часто експортую на робочий стіл. Переміщення папки - це також операція правою кнопкою миші, і WordPress обробляє завантаження.

Передача файлів вручну може бути клопотом, особливо якщо ви постійно змінюєте один файл, але не всі. Якщо ви замість FTP на весь каталог вибрали "перезаписати всі", замінити старі файли набагато простіше (і вам не доведеться відслідковувати зміни, а які не). Це як колишня 5-хвилинна установка WordPress, що раніше - просто замініть все новою версією.


3

Особисто я вважаю, що встановити SVN / GIT та керувати ним - це приємна вправа, але якщо ви можете розмахувати 15 доларами на місяць, Beanstalk коштує кожної копійки. Вони управляють усім сервером за вас. http://beanstalkapp.com/ Інструменти розгортання FTP є приголомшливими. Шахта автоматично розгортає версію на моєму сервері постановки, коли я виконую, наприклад

Ще один спосіб отримати версію особистого файлу - скористатися спадною скринькою. Кожен раз, коли ви зберігаєте файл у своїй скриньці, він відстежує версію, і ви зможете відновити його до будь-якої попередньої версії пізніше .. Ви та інший розробник чи група можете поділитися папкою. Зрозуміло, це не робить стовбури, злиття тощо, але це дуже спрощує роботу розподіленої команди на одному веб-сайті. Ви просто не можете відразу працювати над тими самими файлами.

Ми зберігаємо свою робочу копію SVN в папці, потім я фіксую файли, коли час записується. Мої дизайнери не здійснюватимуть файли і не матимуть справу з SVN, тож це компроміс.

Я віддаю перевагу SVN, тому що мені не потрібні всі транкінг, для якого GIT настільки чудовий, і у SVN є кращі інструменти GUI.


2

Aptana мені дуже подобається , у нього вбудована підривна система, і ви можете легко підключитися до свого сервера за допомогою ftp / sftp та проштовхувати файли вгору, ще одна чудова особливість, яка у нього є, що якщо ви створюєте новий проект php і включаєте "весь" WordPress папку (з wp-admin, wp-include) ви отримуєте завершення коду у файлах тем.

У моїй установці репо є локальним.


Що таке "репо"?
Травіс Нортчетт

2
"repo" - це загальна скорочення для "сховища".
Тревор Брамбл

"repo" = "сховище"
MikeSchinkel

Я також використовую git ( наприклад, плагін ) всередині Aptana (під програмою win та linux), працює чудово та просто.
builtge

1

Ви запитуєте "але я шукаю конкретні приклади налаштувань / робочих процесів, які люди використовують для збереження історії версій відредагованих файлів на сайті WordPress", але ви також згадуєте продукти :)

Ви отримаєте вище, як відповідь на перелік інструментів та деякі найкращі практики, але я зупинюсь тут на робочих процесах: вони НЕ СПЕЦИФІЧНІ НА СВІТЛО:

Але для загальних прикладів / налаштувань / робочих процесів:

Для початку: Є СМ шаблонів, настільки незалежних від інструментів. Google on CM Patterns, багато книг, вікі, навіть спільноти, наприклад http://www.cmcrossroads.com/forums .

Існують також посібники щодо налаштування дійсної стратегії потоку (стратегія потоку Google) тощо.

Я не думаю, що в розгортанні WordPress є щось особливе порівняно з управлінням CM, включаючи розподілену паралельну розробку на великих заводах Siebel, SAP, Informatica, Java тощо. Це дійсно майже за замовчуванням.

Я вважаю, що цього немає, що ніхто не пише CMplan для розвитку WordPress (поки що) (IEEE). Як тільки хтось зробив це (інструмент незалежний). Вимоги можна заповнити, я думаю, будь-яким інструментом.

Я думаю, що причина того, що план не був написаний, полягає в тому, що майже всі впровадження WordPress досі виконуються однією людиною з простою розробкою-виробничою установкою, а не з декількома розробниками / дизайнерами у фазі збірки, що потребують розгортання різних версій, які працюють у наприклад, тестове середовище.

План CMP починається з ідентифікації всіх CI іншими словами: складіть список усіх типів присутніх CI в реалізації WordPress, включаючи програми, плагіни, базу даних, документацію, допомогу, вміст, конфігураційні файли, нотатки до випуску (!) тощо. ..). Це гарний початок. Потім вирішіть, які з них ви хочете взяти під CM.

Далі вирішіть, що спричиняє зміни в цих CI, наприклад, виклик клієнта для виправлення помилок або необхідне оновлення. Якщо зробити все правильно, це призводить до ситуації, коли ви відчуваєте, що все перебуває під контролем.

Такі рішення, як об'єднання назад від виробництва до розробки та спосіб впорядкування, є частиною цієї глави (2 основні закономірності тут) (хоча, звичайно, ви повинні намагатися мінімізувати ці виправлення).

Лише пізніше шукайте інструмент для роботи з CM на одній стороні (який включає управління версіями як один із інструментів) та змінення інструментів управління на іншій стороні (що дозволяє вам бути здоровим).

Я думаю, що це найкращий робочий процес для початку, оскільки, наскільки я гуглив, ще ніхто не робив. Я думаю, що після того, як перша людина написала план плану WordPress (згідно IEEE), кожен інший WordPress у світі може скопіювати цей план та внести корективи та застосувати шаблони в їх розробці.

Хіба це не надто багато роботи / занадто важке: залежить, чи є у вас компанія чи ні: це може заощадити вашу дупу один раз великим часом, щоб мати хороший план CM.


0

Я на спільному хості, тому я не можу встановити SVN чи щось подібне. Я використовую Mercurial для контролю версій на своїй домашній машині. Я використовую FTP-синхронізацію Beyond Compare, щоб синхронізувати локальні та віддалені папки.


0

я використовую git. це просто. Ви повинні зрозуміти прості команди, такі як клонування, комі, натискання, потягування, і Ви готові йти. це основне.

Навіть якщо ви використовуєте git це більше, як координувати команду для роботи над продуктами, то це вже інший рівень. але врешті-решт, воно спромоглося використовувати git або будь-який контроль версій. є реальні, коли трапляються лайна.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.