Создание производственной сборки проекта PHP с Subversion

Если вы работаете в 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, но сейчас я не могу их найти.

8.08.2008 12:57:55
3 ОТВЕТА
РЕШЕНИЕ

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

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

6
30.07.2019 02:30:30
Функция экспорта должна работать с любым клиентом, но именно с клиентом командной строки; это стандартная функция.
Frank V 7.08.2009 17:55:52

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

2
30.07.2019 02:31:21

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

Используйте команду export для экспорта в папку с именем «export» в том же каталоге, что и файл с именем «deploy.bat», затем я запускаю сценарий развертывания (v1 обозначает версию 1, которая является той версией, в которой я сейчас нахожусь в этом project) В этом сценарии используется 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/

1
8.08.2008 17:46:03