Исключить файлы игнорирования при фиксации TortoiseSVN из svn diff - PullRequest
1 голос
/ 13 января 2010
$svn diff > patchfile

создает хороший патч-файл. Однако, используя TortoiseSVN под Windows, я установил некоторые файлы как «игнорируемые при фиксации», то есть они находятся под контролем версии, но не выбираются, когда я делаю коммит.

TortoiseSVN, по-видимому, обрабатывает это с помощью пользовательской записи в .svn/entries для этого файла. Обратите внимание, что это не обычное свойство SVN (то есть не может быть получено через svn propget).

Моя проблема в том, что я хочу создать файл исправления через командную строку (через bash и порт SVN Cygwin), но этот файл исправления должен , а не включать файлы с этим игнорированием при фиксации 'flag.

Кто-нибудь знает, как это сделать (кроме рекурсивного обхода awk через каждый .svn/entries ...)?

Ответы [ 3 ]

2 голосов
/ 13 января 2010

Очевидно, это специальная запись в списке изменений . Что касается того, как затем игнорировать файл / ы из командной строки, это не выглядит как особенно простой способ .

1 голос
/ 26 марта 2012

У меня тоже была эта проблема, и поэтому я разработал простую цепочку команд для удовлетворения потребности сервера:

svn st |grep -A 1000 «игнорировать при фиксации» |grep -v 'игнорировать при фиксации' |sed 's /^.* // g' |xargs svn diff |gvim -

(при условии, что вне списка изменений 'ignore-on-commit' изменено менее 1000 файлов)

С помощью этой команды файлы, измененные вне списка изменений ignore-on-commit, будутdiff-ed, и никакие модификации файла в 'ignore-on-commit' не будут включены.

1 голос
/ 13 января 2010

Вы можете увидеть список изменений через 'svn info' в файле. И установить / сбросить списки изменений через 'svn changelist'

$ svn help cl
changelist (cl): Associate (or dissociate) changelist CLNAME with the named files.
usage: 1. changelist CLNAME TARGET...
       2. changelist --remove TARGET...

Valid options:
  -q [--quiet]             : print nothing, or only summary information
  -R [--recursive]         : descend recursively, same as --depth=infinity
  --depth ARG              : limit operation by depth ARG ('empty', 'files',
                            'immediates', or 'infinity')
  --remove                 : remove changelist association
  --targets ARG            : pass contents of file ARG as additional args
  --changelist ARG         : operate only on members of changelist ARG
                             [aliases: --cl]
...