SVN фиксировать определенные файлы



есть ли способ зафиксировать только список определенных файлов (например, только один из списка файлов, которые SVN хочет зафиксировать).



Я работаю на MAC OS X под терминалом, без какого-либо пользовательского интерфейса.

523   7  

7 ответов:

конечно. Просто перечислите файлы:

$ svn ci -m "Fixed all those horrible crashes" foo bar baz graphics/logo.png

Я не знаю, как сказать ему игнорировать определенный набор файлов. Конечно, если файлы, которые вы хотите зафиксировать, легко перечисляются оболочкой, вы можете использовать это:

$ svn ci -m "No longer sets printer on fire" printer-driver/*.c

вы также можете заставить команду svn прочитать список файлов для фиксации из файла:

$ svn ci -m "Now works" --targets fix4711.txt

использовать списки изменений. Преимущество перед указанием файлов заключается в том, что вы можете визуализировать и подтвердить все, что вы хотели, на самом деле включено перед фиксацией.

$ svn changelist fix-issue-237 foo.c 
Path 'foo.c' is now a member of changelist 'fix-issue-237'.

это сделано, svn теперь держит вещи отдельно для вас. Это помогает, когда вы жонглировать несколько изменений

$ svn status
A       bar.c
A       baz.c

--- Changelist 'fix-issue-237':
A       foo.c

наконец, скажите ему совершить то, что вы хотели изменить.

$ svn commit --changelist fix-issue-237 -m "Issue 237"

вы в основном помещаете файлы, которые хотите зафиксировать в командной строке

svn ci file1 file2 dir1/file3

из-за моего подрывного состояния, я должен был стать творческим. svn st показала M,A и ~ статусы. Я только хотел M и A так...

svn st | grep ^[A\|M] | cut -d' ' -f8- > targets.txt

эта команда говорит найти все строки, выводимые svn st, которые начинаются с M или A, вырезать с помощью разделителя пробелов, а затем получить colums 8 до конца. Сбросьте это на цели.txt и перезапись.

изменить цели.txt, чтобы обрезать список файлов дальше. Затем запустите ниже, чтобы совершают:

svn ci -m "My commit message" --targets targets.txt

наверное, не самый распространенный случай использования, но, надеюсь, это поможет кому-то.

кроме перечисления файлов явно, как показано на отдыха и Wienczny, вы можете настроить списки изменений и проверить их. Они позволяют управлять дизъюнктными наборами изменений в одной и той же рабочей копии.

вы можете прочитать о них в онлайн-версия отличной книги SVN.

попробовать этот скрипт..

#!/bin/bash
NULL="_"
for f in `svn st|grep -v ^\?|sed s/.\ *//`; 
     do LIST="${LIST} $f $NULL on"; 
done
dialog --checklist "Select files to commit" 30 60 30 $LIST 2>/tmp/svnlist.txt
svn ci `cat /tmp/svnlist.txt|sed 's/"//g'`

Я делаю (sub)папку с именем "скрыть", переместить файл I не хочу совершить там. Затем сделайте мою фиксацию, игнорируя жалобу на отсутствующий файл. Затем переместите скрытый файл из скрыть обратно ./

Я не знаю ни одного недостатка в этой тактике.

Comments

    Ничего не найдено.