Создание производственной сборки проекта PHP с помощью Subversion - PullRequest
4 голосов
/ 08 августа 2008

Если вы работаете в PHP (или, я полагаю, на любом языке программирования) и используете Subversion в качестве исходного контроля, есть ли способ взять ваш проект (например):

C: \ Projects \ Test \ .svn
C: \ Projects \ Test \ Docs \
C: \ Projects \ Test \ faq.php
C: \ Projects \ Test \ guestbook.php
C: \ Projects \ Test \ index.php
C: \ Projects \ Test \ test.php

и сборка / копирование / что бы то ни было, чтобы она отсеивала определенные файлы и становится:

C: \ Projects \ Test \ faq.php
C: \ Projects \ Test \ guestbook.php
C: \ Projects \ Test \ index.php

автоматически? Я устал от создания ветки, а затем перехожу через ветку и удаляю все папки ".svn", каталог docs и мои файлы прототипов.

Я знаю, что, вероятно, мог бы использовать файл .bat только для того, чтобы скопировать определенные файлы, которые я хочу, но я надеялся, что с помощью subversion был какой-то способ псевдо-игнорирования файла, где он все еще будет версионировать его, но где Вы могли бы сделать снимок проекта, который игнорирует файлы, которые вы сказали, чтобы псевдо игнорировать.

Я знаю, что где-то читал в Интернете о некоторых функциях, которые, по крайней мере, позволяют копировать без папок .svn, но сейчас я не могу его найти.

Ответы [ 3 ]

6 голосов
/ 08 августа 2008

Если вы используете TortoiseSVN, вы можете использовать функцию экспорта для автоматического удаления всех файлов .svn. Я думаю, что другие вещи SVN имеют ту же функцию.

Щелкните правой кнопкой мыши корневую папку проекта, TortoiseSVN> Export и укажите, где вы хотите получить бесплатный каталог .svn.

2 голосов
/ 08 августа 2008

Вот дурацкая идея жевательной резинки:

Скопируйте все файлы вручную или используя существующий метод в первый раз. Затем, поскольку я полагаю, что вы работаете на платформе Windows, установите SyncToy и настройте его с помощью метода подписки , который фактически будет в одностороннем порядке копировать только изменения, внесенные с момента последней псевдо-фиксация для файлов, уже находящихся в работе. Если вы хотите добавить файл, вы можете просто скопировать его вручную и возобновить операцию SyncToy.

1 голос
/ 08 августа 2008

Хорошо, так что мое окончательное решение таково:

Используйте команду export для экспорта в папку с именем «export» в том же каталоге, что и файл с именем «deploy.bat», затем я запускаю сценарий развертывания (v1 обозначает версию 1, то есть версию, которой я являюсь в настоящее время в этом проекте) Этот сценарий использует 7-Zip, который я поместил в системный путь, чтобы я мог использовать его в качестве утилиты командной строки:

rem replace the v1 directory with the export directory
rd /s /q v1
move /y export\newIMS v1
rd /s /q export

rem remove the prepDocs directory from the project
rd /s /q v1\prepDocs

rem remove the scripts directory from the project
rd /s /q v1\scripts

rem remove individual files from project
del v1\.project
rem del v1\inc\testLoad.html
rem del v1\inc\testInc.js

SET /P version=Please enter version number:

rem zip the file up with 7-Zip and name it after whatever version number the user typed in.
7z a -r v%version%.zip v1

rem copy everything to the shared space ready for deployment
xcopy v%version%.zip /s /q /y /i "Z:\IT\IT Security\IT Projects\IMS\v%version%.zip"
xcopy v1 /s /q /y /i "Z:\IT\IT Security\IT Projects\IMS\currentVersion"

rem keep the window open until user presses any key
PAUSE

У меня не было времени, чтобы проверить решение SyncToy, поэтому не воспринимайте это как отказ от этого метода. Я просто знал, как это сделать, и у меня не было времени, чтобы проверить это (сейчас под вопросом время).

Источники:

http://commandwindows.com/command2.htm
http://www.ss64.com/nt/

...