Название: SVN даты Отправлено: ammaximus от Июнь 05, 2013, 10:33 Добрый день!
Я работаю на крайне консервативном предприятии, где для отслеживания версии файлов используется атрибут дата правки (Linux). Но тут есть проблема - любое копирование по сети устанавливает текущую дату в это поле. Я начал пытаться внедрять svn, это было достаточно трудно, но сейчас все зависит от того, будут ли сохраняться эти даты правки при update. Причем не просто даты, когда была фиксация, а те, которые были у человека которые комитил во время фиксации XD. Насколько плохи мои дела? В инете таких проблем не нашел, поскольку есть очевидное решение - использовать для контроля изменений svn журнал и номера ревизий, но у меня так. Посоветуйте что можно сделать. Название: Re: SVN даты Отправлено: mutineer от Июнь 05, 2013, 10:50 Дата коммита хранится в svn. Если при выполнении update файл изменяется, то дата его правки меняется на текущую, так как на диске он изменился во время update
Название: Re: SVN даты Отправлено: ammaximus от Июнь 05, 2013, 12:02 можно ли хотя бы дату комита подсовывать как то?
Название: Re: SVN даты Отправлено: mutineer от Июнь 05, 2013, 12:14 Куда подсовывать? Файлу? Ну скрипт можно попробовать написать
Название: Re: SVN даты Отправлено: kamre от Июнь 05, 2013, 14:52 можно ли хотя бы дату комита подсовывать как то? Отсюда (http://stackoverflow.com/questions/2171939/how-can-i-keep-the-original-file-timestamp-on-subversion):Цитировать You can set it in .subversion/config: [miscellany] use-commit-times = yes Although you will have strange side effects if we are talking about source files. For example, you build your software and do svn update. Now the timestamp of the updated files is older than the timestamp of the build result file, and it won't be rebuilt even though some source files changed. Be very careful with this setting. Название: Re: SVN даты Отправлено: panAlexey от Июнь 05, 2013, 23:26 а не подскажете многоуважаемые, как сделать что-бы при комите в файл прописывались даты и версия?
типа: 'Версия: $Revision: 1.11 $ или 'SQLIntellisence ' 'Версия: $Revision: 1.13 $ Название: Re: SVN даты Отправлено: mutineer от Июнь 05, 2013, 23:56 http://www.linux.org.ru/forum/admin/7927341?cid=7941162
Название: Re: SVN даты Отправлено: ammaximus от Июль 22, 2013, 13:38 Я решил использовать для решения проблемы properties subversion и скриптов на уровне клиента.
Алгоритм такой: pre-commit-hook Код: foreach (файл){ post-update-hook Код: foreach (файл){ 1. Какой наипростейший способ реализации этих скриптов? Мне в голову приходит Qt, класс QFileInfo должен помочь, но может ли он устанавливать свойства? 2. Как установить svn:property файла из программы? Это ж надо будет наследовать какой-нибудь SVN API, что уже не тривиальная задача. Название: Re: SVN даты Отправлено: ammaximus от Июль 22, 2013, 14:10 Так вроде сообразил сам - свойства устанавливаются вызовами
Код: svn propset/propget name file Из Qt - это будет системный вызов, в шелле просто. Непонятно только одно - как программно изменить атрибуты файла Название: Re: SVN даты Отправлено: ammaximus от Июль 22, 2013, 14:44 в линукс есть функция touch
Название: Re: SVN даты Отправлено: ammaximus от Июль 22, 2013, 14:57 Последняя проблема: как программно в шелл скрипте получить дату изменения файла (атрибут)
Название: Re: SVN даты Отправлено: ammaximus от Июль 22, 2013, 15:53 Вообщем наваял следующее:
svn precommit hook Код: #! /usr/bin/sh Код: #! /usr/bin/sh Проблемы: 1. Чему равен file, как его получить. Как получить файл для всех файлов текущего каталога и подкаталогов (рекурсия), а также понять что они под контролем и не лежат в папке .svn 2. Может можно просто как-то получить список коммит-упдэйт файлов, тогда все проще. Название: Re: SVN даты Отправлено: ammaximus от Июль 23, 2013, 17:54 Короче все закончилось perl скриптом с парсингом стандартного вывода
|