Делаю свой HiasmUpdateSVN. Я так понял всю работу делает консольное приложение в папке SVN(билд CriDos-a)?? Как без него узнать локальную версию сборки SVN?? так как хочу отвязать от него обновления и все уже готово но вот с последним вопросом трабл
Этот топик читают: Гость
Ответов: 497
Рейтинг: 16
|
|||
карма: 1 |
|
Ответов: 1058
Рейтинг: 76
|
|||
хотел бы помочь, да экстрасенсорикой не обладаю
С такой постановкой вопросов, вскоре никто не захочет Вам отвечать. Учитесь подробно и понятно описывать свои задачи. RAWY_EX писал(а): Я так понял всю работу делает консольное приложение в папке SVN...все уже готово но вот с последним вопросом трабл А тут меня начало колбасить... Сделал, без малейшего понятия как оно работает Ну не нравится обновлялка, что то глючит, как то неправильно работает. Нет проблем, варианты прилагаются 1 Читаем как правильно пользоваться обновлялкой. Если не устраивает, ищем другую, и опять читаем... 2 Берем любой консольный клиент изучаем его командную строку на hiasm делаем графическую оболочку. 3 Берем спецификацию читаем... читаем... еще читаем... читаем до посинения, пробуем делать еще пробуем еще... ...понимаем что это гиблое дело и возвращаемся к первому варианту. |
|||
карма: 0 |
|
Ответов: 497
Рейтинг: 16
|
|||
tom-it писал(а): хотел бы помочь, да экстрасенсорикой не обладаюС такой постановкой вопросов, вскоре никто не захочет Вам отвечать. Учитесь подробно и понятно описывать свои задачи. как без hisvn.exe узнать ревизию рабочей копии? tom-it писал(а): А тут меня начало колбасить... Сделал, без малейшего понятия как оно работаетсхему CriDos-а открыл и понял tom-it писал(а): 1 Читаем как правильно пользоваться обновлялкой.Если не устраивает, ищем другую Чем плох вариант не ищем другую а делаем свою? |
|||
карма: 1 |
|
Ответов: 1058
Рейтинг: 76
|
|||
RAWY_EX писал(а): Чем плох вариант не ищем другую а делаем свою?Абсолютно нечем, даже наоборот лучше, но... В моем понимании "свою" означает: Первый вариант. Изучить протокол(как клиент и сервер обмениваются между собой инфой) Изучить спецификацию (каким боком и в каком виде все хранится) Написать с ноля(манипулировать каждым байтиком) Сложно. Второй вариант взять готовое решение и адаптировать под свои нужды. Самый простой вариант - управлять готовым(зачастую консольным) решением. После ознакомления со справкой делается за полчаса. В Вашем случае неясно какой вариант используется. В любом случае надо хотябы основы понимать. У CriDos-а используется второй вариант. А значит надо читать как работает консольный клиент. Если в двух словах, то: На сервере хранятся файлы, после неких правок версия увеличивается. Вся инфа об изменениях хранится в базе. Базой может выступать, как обычные текстовые файлы с хитрым способом записи, так и специально разработанные форматы с которыми работают специальные готовые решения(к примеру SQLite, MySQL и т.д.) По (необязательно)специальному протоколу svn://, клиент получает\отдает от сервака(у) нужную инфу(файлы, номера ревизий и т.п.) Клиент все данные о файлах хранит в базе (скрытые папки ".svn" с файликами в директории с файлами элементов) Чтобы узнать номер локальной ревизии надо заглянуть в базу(скрытые папки ".svn") Как заглянуть в нее зависит от выбранного варианта - "делаем свою" Либо читаем каждый байтик из базы, используя "свою" реализацию спецификации, либо шлем специальную команду готовому консольному клиенту. Теперь прочтите заданный Вами вопрос и ответьте Сможет ли любой желающий Вам помочь, если не известно в какой способ Вы все реализовали у себя. |
|||
карма: 0 |
|
Ответов: 497
Рейтинг: 16
|
|||
скорее первый вариант есть цель и есть желание а второй вариант есть цель и нет желания
tom-it писал(а): Изучить спецификацию (каким боком и в каком виде все хранится)Если в двух словах, то: На сервере хранятся файлы, после неких правок версия увеличивается. Вся инфа об изменениях хранится в базе. Базой может выступать, как обычные текстовые файлы с хитрым способом записи, так и специально разработанные форматы с которыми работают специальные готовые решения(к примеру SQLite, MySQL и т.д.) По (необязательно)специальному протоколу svn://, клиент получает\отдает от сервака(у) нужную инфу(файлы, номера ревизий и т.п.) Клиент все данные о файлах хранит в базе (скрытые папки ".svn" с файликами в директории с файлами элементов) знаю но у меня чуток нестандартный (парсинг) способ tom-it писал(а): Либо читаем каждый байтик из базы, используя "свою" реализацию спецификации, либо шлем специальную команду готовому консольному клиенту вот про все способы я и спросил только если можно чуть подробней зависит от выбранного варианта - "делаем свою" ... Сможет ли любой желающий Вам помочь, если не известно в какой способ Вы все реализовали у себя. как? как зависит?? я спросил варианты с которых я сам выберу который мне подходит а не мнение какой мне выбрать относительно схемы. |
|||
карма: 1 |
|
Ответов: 1058
Рейтинг: 76
|
|||
RAWY_EX Вы пытаетесь поднять, на данный момент, неподъемное.
RAWY_EX писал(а): я спросил варианты с которых я сам выберу который мне подходит а не мнение какой мне выбрать относительно схемы. Я в который раз повторюсь, я не знаю что и как Вы там делаете. Соответственно ни я, ни кто другой не даст вам готовое решение. Изначально CriDos использовал TortoiseSVN, сейчас он глубоко засел на QT. Возможно .exe-шник в его сборке самопальный, использующий какуюто qt-ешую либу. К примеру есть некий протокол и есть некие сервера и клиенты поддерживающие данный протокол. Главная задача, используя протокол, получить необходимые данные, а как там сервера и клиенты хранят эти данные - нам до лампочки. Соответственно, откуда мне, или комуто другому, знать спецификацию неизвестного клиента. Максимум спросить CriDos чего там у него нашаманено. |
|||
карма: 0 |
|
Ответов: 497
Рейтинг: 16
|
|||
tom-it, видимо мы друг друга недопонимаем. И это с первого варианта перебросило меня на второй потому бросаю [burl=http://forum.hiasm.net/forum_serv.php?q=56&id=4353]исходник [/burl] его нужно довести до ума и снять зависимость от HiSVN.exe
|
|||
карма: 1 |
|
Ответов: 1058
Рейтинг: 76
|
|||
RAWY_EX писал(а): видимо мы друг друга недопонимаемТак и есть Я с Ваших слов, поначалу, подумал что Вам нужно узнать номер локальной ревизии, соответственно номер локальной ревизии, незная где и как он хранится, узнать затруднительно. В будущем, чтобы не-было десятков страниц с сообщениями-попытками понять друг-друга, формулируйте более корректно свои вопросы. К примеру, Ваш вопрос стоило бы сформулировать примерно так Делаю свою обновлялку потому что - "описание причины" Делаю по следующему принципу - "описание того что и как делаете" (в вашем случае с помощью tcpclient-а эмулирую поведение svn клиента, также шлю запросы серверу и методом парсинга ответов получаю нужную инфу) вопрос Подскажите какой запрос отправить чтобы получить номер сетевой ревизии хранилища ... или какой запрос отправить чтобы получить номер ревизии отдельного файла. В предыдущих сообщениях я подсказал куда копать. В вашем случае изучать спецификацию протокола/ов. Читать томы спецификаций дело нудное и не благодарное, быстрее будет вооружившись снифером смотреть какие запросы отправляет готовый клиент и по аналогии делать у себя. Еще можно бегло почитать вики и книгу Ну и последнее. Что послужило поводом изобретать свой велосипед? Чем не утраивают готовые клиенты? Я вот уже какой год TortoiseSVN пользуюсь и даже половины функционала не освоил. P.S. У кого есть права - отрежьте 7-8 сообщений в отдельную тему. |
|||
карма: 0 |
|
Ответов: 497
Рейтинг: 16
|
|||
tom-it,
tom-it писал(а): Что послужило поводом изобретать свой велосипед?tom-it писал(а): или какой запрос отправить чтобы получить номер ревизии отдельного файла.tom-it писал(а): незная где и как он хранится, узнать затруднительно |
|||
карма: 1 |
|
Ответов: 1058
Рейтинг: 76
|
|||
RAWY_EX писал(а): ну вот это можно было сказать и все вопрос закрытМожно было изначально все понятно изложить и первым же сообщением был бы ответ. Специально скачал версию от CriDos-а У него используется готовый клиент SlikSVN(папка ...\HiAsm_4.05b186_AltBuild_v2050.28-11-15.01\SVN), в корневой папке обновлялка HiUpdate.exe(схемы .sha я не нашел и понятия не имею какую схему вы смотрели), но учитывая вес более 5-ти мб скорей всего он на QT делал. HiUpdate.exe - графическая оболочка над переименованной hisvn.exe консолью. Клиент известен - можно на офф.сайте поискать спецификацию и параметры командной строки(в зависимости от реализации) Если делается с ноля(а именно так и говорилось) значит незачем номер ревизии знать, поскольку вы сами программируете как, где и в каком виде хранить информацию о скачанных с сервера файлах, в том числе и номер ревизии. Единственное что будет одинаковым, так это протокол общения с сервером. Поскольку сервер готовый и под него надо подстраиваться Вам. Для примера... Вы качаете какойто файл к примеру с ютуба, единственное требование ютуба - правильно общаться с его сервером(тоесть протокол), а куда будет сохранен файл и как - ему до лампочки. Вы также можете вместе с роликом в какойто файл писать: время закачки, имя, размер, sha или md5 и прочую информацию. А потом при повторной закачке ролика сравнивать данные. С SVN примерно также. Вы опрашиваете сервер(используя нужный протокол) и нужную информацию о файлах храните так, как удобно именно Вам. В правильно заданном вопросе содержится половина ответа |
|||
карма: 0 |
|
Ответов: 1841
Рейтинг: 369
|
|||
RAWY_EX писал(а): у знакомого вафли нет а только модем и соединение очень нестойкое и как результат обновить как следует не получается.SVN протокол и клиентская реализация оного, и так очень качественно реализованы. Тут уже есть версирование, сравнение хешей, локальная копия версии, возможность работы через проксю. Также в моей оболочке реализована обработка многих вариантов ошибок обновлений, что сильно упростит обновление с постоянными ошибками (плохое соединение) относительно предлагаемых продвинутых клиентов. А ведь все эти ситуации (блокировки, изменённые/повреждённые файлы, смена версии протокола/системы версировании) придётся обрабатывать самому, также потеряется совместимость со всеми остальными клиентами. Единственное что отсутствует, так это работа в качестве сервиса, но по моим соображениям, это будет лишним на данный момент времени. Так что, удачи Вам. p.s ТС скорее всего имеет ввиду версию 1.8.*, которая была ещё на HiAsm: https://yadi.sk/d/aBj3YqB9snhpb Это обычная оболочка над консольным клиентом, без какой либо обработки ошибок. p.s.s к последней версии обновлятора схемы нет, только исходники: https://bitbucket.org/CriDos/hisvn2 |
|||
карма: 1 |
| ||
Голосовали: | LastLeader |
11