о SVN
Модератор: Модераторы
- alexs
- долгожитель
- Сообщения: 4067
- Зарегистрирован: 15.05.2005 23:17:07
- Откуда: г.Ставрополь
- Контактная информация:
о SVN
кто хорошо знает SVN?
есть ли возможность работать с SVN через API? т.е. вызовом функций из какойто-то DLL/SO
или только через взов Утилиты SVN?
у меня появилась мысль сделать интерфейс из Lazarus к SVN
есть ли возможность работать с SVN через API? т.е. вызовом функций из какойто-то DLL/SO
или только через взов Утилиты SVN?
у меня появилась мысль сделать интерфейс из Lazarus к SVN
- shade
- энтузиаст
- Сообщения: 879
- Зарегистрирован: 21.02.2006 19:15:48
- Откуда: http://shamangrad.net/
- Контактная информация:
Есть набор библиотек libsvn* (libsvn_client, libsvn_subr и т.д.)
Но кроме них еще нужно будет использовать apr (кстати в FCL, кажись есть модули импорта - заметил как-то при компиляции - но не пробовал их в деле).
см. также:
http://www.linuxdevcenter.com/pub/a/lin ... bsvn1.html
http://www.linuxdevcenter.com/pub/a/lin ... bsvn2.html
- материал устаревший, но основы из него почепнуть можно - остальное см. исходники - они не плохо документированы (не хватает только систематического обзора - для этого см. ссылки выше).
Я тоже хотел прикрутить функции SVN-клиента к одному проекту и написал (частично) модули импорта для libsvn. Чтобы не делать работу дважды можешь взять за основу ( http://zolotov.h14.ru/download/modules/ ... libsvn.zip ) - объявленных функций должно быть достаточно для svn-клиента (если я чего-нибудь не пропустил), остальные функции нужны для низкоуровневых операций. Но apr лучше попробовать заменить на версию из FCL, т.к. с apr я не возился и там почти ничего нет (хотя возможно этого и хватит).
Если начнешь ковырять по серьёзному, то выложи какой-нибудь простой пример..
Но кроме них еще нужно будет использовать apr (кстати в FCL, кажись есть модули импорта - заметил как-то при компиляции - но не пробовал их в деле).
1. Apache Portable Runtime 0.9.7 (http://apr.apache.org/)
http://apr.apache.org/download.cgi
$ svn co http://svn.apache.org/repos/asf/apr/apr/branches/0.9.x apr
$ svn co http://svn.apache.org/repos/asf/apr/apr ... ches/0.9.x apr-util
NOTE: On Windows you will also need apr-iconv. Check it out next to
the apr and apr-util directories:
$ svn co http://svn.apache.org/repos/asf/apr/apr ... ches/0.9.x apr-iconv
см. также:
http://www.linuxdevcenter.com/pub/a/lin ... bsvn1.html
http://www.linuxdevcenter.com/pub/a/lin ... bsvn2.html
- материал устаревший, но основы из него почепнуть можно - остальное см. исходники - они не плохо документированы (не хватает только систематического обзора - для этого см. ссылки выше).
Я тоже хотел прикрутить функции SVN-клиента к одному проекту и написал (частично) модули импорта для libsvn. Чтобы не делать работу дважды можешь взять за основу ( http://zolotov.h14.ru/download/modules/ ... libsvn.zip ) - объявленных функций должно быть достаточно для svn-клиента (если я чего-нибудь не пропустил), остальные функции нужны для низкоуровневых операций. Но apr лучше попробовать заменить на версию из FCL, т.к. с apr я не возился и там почти ничего нет (хотя возможно этого и хватит).
Если начнешь ковырять по серьёзному, то выложи какой-нибудь простой пример..
Attid писал(а):простые действия как получить обновление и закомитеть можно сделать через консольные утилиты и запихнуть в лазарус в раздел доп команд.
сравнение и дополнения вызывая тот же rapidsvn, зачем изобретать велосипед ?
Мм.... Между прочим вполне здравое решение, да и парится с обновлением клиента не придется. Думаю стоит автору идеи подзадуматься, почитать документацию к SVN и поступить именно так, хотя ему решать.
- alexs
- долгожитель
- Сообщения: 4067
- Зарегистрирован: 15.05.2005 23:17:07
- Откуда: г.Ставрополь
- Контактная информация:
у кадой из этих двух метоик (как есть сечас и интегрированное решение в среду) есть свои преимущества и свои недостатки. На мой взглад преимущества интегрированного модуля - возможность автоматической синхронизации фалов проекта с файлами svn и это главноепреимущество. также возможность просомотра версий исходника из самой среды - не выходя во внешнюю программу - переключение между задачами снижает производительность человека.
Я сейчас именно так и работаю.
Chief писал(а):Думаю стоит автору идеи подзадуматься, почитать документацию к SVN
Я сейчас именно так и работаю.
- Attid
- долгожитель
- Сообщения: 2589
- Зарегистрирован: 27.10.2006 17:29:15
- Откуда: 44°32′23.63″N 41°2′25.2″E
- Контактная информация:
также возможность просомотра версий исходника из самой среды - не выходя во внешнюю программу
ну в рапидсвн это запросто они у меня в лазаре и открываются. а сравнивать в лазаре все равно не получится.
кста под дельфу вроде такие клиенты есть под vss точно были но как выглядят не смотрел может и есть здравый подход.
я просто со своей стороны смотрю работаю сейчас так
1 пришел за машину запустил rapidsvn обновил все проэкты,
кого надо перекомпилил(мсе\лазарь скриптами)
2 поработал,
3 запустил rapidsvn сравнил что я там наменял отменил (revert) то что не трогал (обычно формы в лазарь проэктах которые ничаянно кликнул в ИДЕ)
4 закомитил все, пошел пить пиво
сделать что-то удобнее даже не предстовляю. единсвеное что первый и последний путь можно в меню лазаря засунуть хоть сейчас
последний без 3 лучше не делать, много мусора полезет
- shade
- энтузиаст
- Сообщения: 879
- Зарегистрирован: 21.02.2006 19:15:48
- Откуда: http://shamangrad.net/
- Контактная информация:
А мне понравилась бы такая функция: добавляешь новую форму/юнит в проект и они автоматически добавляется в svn. Соответственно, если удаляется юнит из проекта, то удалять его из svn и т.п.
+ редактирование свойств. Причем запоминать имена нескольких последних отредактированных свойств - чтобы их можно было выбрать через TComboBox + "встроенные" свойства: svn:mime-type (здесь также не помешал бы выпадающий список), svn:ignore и т.п.
+ редактирование свойств. Причем запоминать имена нескольких последних отредактированных свойств - чтобы их можно было выбрать через TComboBox + "встроенные" свойства: svn:mime-type (здесь также не помешал бы выпадающий список), svn:ignore и т.п.
- alexs
- долгожитель
- Сообщения: 4067
- Зарегистрирован: 15.05.2005 23:17:07
- Откуда: г.Ставрополь
- Контактная информация:
shade
Во - наш человек. Я именно этого и хочу. Также хочу встроенного на уровне редактора просмотра версий. и ещё много чего...
Attid
Я сейчас тоже так работаю - но это метод не удобен для добавления/изменения содержимого проекта. Да и вобще когда думаеш о задаче - запуск внешнего приложения - это всё равно перключить внимание на другую задачу, отвлекаешся.
также хочется чтобы правильно отслеживалось изменение файлов в проектеи или в пакете. Например - я пишу свои проекты, параллельно дорабатываб RX и FBds - и при внесеннии изменений в файлы последних чтобы клиент vss правильно определял принадлежность изменений.
по форме самого клиента мне понравилась идея из Lazarus CCR - там в примерах компонент есть пример клиента svn - он не использует никаких внешних библиотек - только стандартного svnклиента - и просто парсит его вывод. это медленне случая использования dll или so - но и не требует сторонних библиотек, да и лишнего встроеннного коде не требует много.
Вобщем, будет у меня время свободное, буду заниматься в этом направлении.
Во - наш человек. Я именно этого и хочу. Также хочу встроенного на уровне редактора просмотра версий. и ещё много чего...
Attid
Я сейчас тоже так работаю - но это метод не удобен для добавления/изменения содержимого проекта. Да и вобще когда думаеш о задаче - запуск внешнего приложения - это всё равно перключить внимание на другую задачу, отвлекаешся.
также хочется чтобы правильно отслеживалось изменение файлов в проектеи или в пакете. Например - я пишу свои проекты, параллельно дорабатываб RX и FBds - и при внесеннии изменений в файлы последних чтобы клиент vss правильно определял принадлежность изменений.
по форме самого клиента мне понравилась идея из Lazarus CCR - там в примерах компонент есть пример клиента svn - он не использует никаких внешних библиотек - только стандартного svnклиента - и просто парсит его вывод. это медленне случая использования dll или so - но и не требует сторонних библиотек, да и лишнего встроеннного коде не требует много.
Вобщем, будет у меня время свободное, буду заниматься в этом направлении.
