Вверх ↑
Этот топик читают: Гость
Ответов: 497
Рейтинг: 16
#1: 2016-06-24 01:44:08 ЛС | профиль | цитата
Делаю свой HiasmUpdateSVN. Я так понял всю работу делает консольное приложение в папке SVN(билд CriDos-a)?? Как без него узнать локальную версию сборки SVN?? так как хочу отвязать от него обновления и все уже готово но вот с последним вопросом трабл
карма: 1
        ]  
0
Ответов: 1058
Рейтинг: 76
#2: 2016-06-24 09:20:18 ЛС | профиль | цитата
хотел бы помочь, да экстрасенсорикой не обладаю

С такой постановкой вопросов, вскоре никто не захочет Вам отвечать.
Учитесь подробно и понятно описывать свои задачи.

RAWY_EX писал(а):
Я так понял всю работу делает консольное приложение в папке SVN
...все уже готово но вот с последним вопросом трабл

А тут меня начало колбасить... Сделал, без малейшего понятия как оно работает

Ну не нравится обновлялка, что то глючит, как то неправильно работает. Нет проблем, варианты прилагаются

1 Читаем как правильно пользоваться обновлялкой.
Если не устраивает, ищем другую, и опять читаем...

2 Берем любой консольный клиент
изучаем его командную строку
на hiasm делаем графическую оболочку.

3 Берем спецификацию
читаем...
читаем...
еще читаем...
читаем до посинения,
пробуем делать
еще пробуем
еще...
...понимаем что это гиблое дело и возвращаемся к первому варианту.

карма: 0

0
Ответов: 497
Рейтинг: 16
#3: 2016-06-24 10:40:07 ЛС | профиль | цитата
tom-it писал(а):
хотел бы помочь, да экстрасенсорикой не обладаю

С такой постановкой вопросов, вскоре никто не захочет Вам отвечать.
Учитесь подробно и понятно описывать свои задачи.

как без hisvn.exe узнать ревизию рабочей копии?
tom-it писал(а):
А тут меня начало колбасить... Сделал, без малейшего понятия как оно работает

схему CriDos-а открыл и понял
tom-it писал(а):
1 Читаем как правильно пользоваться обновлялкой.
Если не устраивает, ищем другую

Чем плох вариант не ищем другую а делаем свою?
карма: 1
        ]  
0
Ответов: 1058
Рейтинг: 76
#4: 2016-06-24 11:24:31 ЛС | профиль | цитата
RAWY_EX писал(а):
Чем плох вариант не ищем другую а делаем свою?

Абсолютно нечем, даже наоборот лучше, но...

В моем понимании "свою" означает:
Первый вариант.
Изучить протокол(как клиент и сервер обмениваются между собой инфой)
Изучить спецификацию (каким боком и в каком виде все хранится)
Написать с ноля(манипулировать каждым байтиком)
Сложно.

Второй вариант взять готовое решение и адаптировать под свои нужды.
Самый простой вариант - управлять готовым(зачастую консольным) решением.
После ознакомления со справкой делается за полчаса.

В Вашем случае неясно какой вариант используется.
В любом случае надо хотябы основы понимать.


У CriDos-а используется второй вариант. А значит надо читать как работает консольный клиент.

Если в двух словах, то:
На сервере хранятся файлы, после неких правок версия увеличивается. Вся инфа об изменениях хранится в базе.
Базой может выступать, как обычные текстовые файлы с хитрым способом записи, так и специально разработанные форматы с которыми работают специальные готовые решения(к примеру SQLite, MySQL и т.д.)

По (необязательно)специальному протоколу svn://, клиент получает\отдает от сервака(у) нужную инфу(файлы, номера ревизий и т.п.)
Клиент все данные о файлах хранит в базе (скрытые папки ".svn" с файликами в директории с файлами элементов)

Чтобы узнать номер локальной ревизии надо заглянуть в базу(скрытые папки ".svn")
Как заглянуть в нее зависит от выбранного варианта - "делаем свою"

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

Теперь прочтите заданный Вами вопрос и ответьте
Сможет ли любой желающий Вам помочь, если не известно в какой способ Вы все реализовали у себя.


карма: 0

0
Ответов: 497
Рейтинг: 16
#5: 2016-06-24 14:43:25 ЛС | профиль | цитата
скорее первый вариант есть цель и есть желание а второй вариант есть цель и нет желания
tom-it писал(а):
Изучить спецификацию (каким боком и в каком виде все хранится)
вот я и не нашел (как вариант может плохо искал) информации о том как узнать ревизию рабочей копии
Если в двух словах, то:
На сервере хранятся файлы, после неких правок версия увеличивается. Вся инфа об изменениях хранится в базе.
Базой может выступать, как обычные текстовые файлы с хитрым способом записи, так и специально разработанные форматы с которыми работают специальные готовые решения(к примеру SQLite, MySQL и т.д.)

По (необязательно)специальному протоколу svn://, клиент получает\отдает от сервака(у) нужную инфу(файлы, номера ревизий и т.п.)
Клиент все данные о файлах хранит в базе (скрытые папки ".svn" с файликами в директории с файлами элементов)

знаю но у меня чуток нестандартный (парсинг) способ
tom-it писал(а):
Либо читаем каждый байтик из базы, используя "свою" реализацию спецификации,
либо шлем специальную команду готовому консольному клиенту

вот про все способы я и спросил только если можно чуть подробней
зависит от выбранного варианта - "делаем свою"
... Сможет ли любой желающий Вам помочь, если не известно в какой способ Вы все реализовали у себя.

как? как зависит?? я спросил варианты с которых я сам выберу который мне подходит а не мнение какой мне выбрать относительно схемы.
карма: 1
        ]  
0
Ответов: 1058
Рейтинг: 76
#6: 2016-06-24 16:08:58 ЛС | профиль | цитата
RAWY_EX Вы пытаетесь поднять, на данный момент, неподъемное.

RAWY_EX писал(а):
я спросил варианты с которых я сам выберу который мне подходит а не мнение какой мне выбрать относительно схемы.

Я в который раз повторюсь, я не знаю что и как Вы там делаете. Соответственно ни я, ни кто другой не даст вам готовое решение.

Изначально CriDos использовал TortoiseSVN, сейчас он глубоко засел на QT. Возможно .exe-шник в его сборке самопальный, использующий
какуюто qt-ешую либу.

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

Соответственно, откуда мне, или комуто другому, знать спецификацию неизвестного клиента. Максимум спросить CriDos чего там у него нашаманено.




карма: 0

0
Ответов: 497
Рейтинг: 16
#7: 2016-06-25 01:00:52 ЛС | профиль | цитата
tom-it, видимо мы друг друга недопонимаем. И это с первого варианта перебросило меня на второй потому бросаю [burl=http://forum.hiasm.net/forum_serv.php?q=56&id=4353]исходник [/burl] его нужно довести до ума и снять зависимость от HiSVN.exe
карма: 1
        ]  
0
Ответов: 1058
Рейтинг: 76
#8: 2016-06-25 09:30:30 ЛС | профиль | цитата
RAWY_EX писал(а):
видимо мы друг друга недопонимаем

Так и есть

Я с Ваших слов, поначалу, подумал что Вам нужно узнать номер локальной ревизии, соответственно номер локальной ревизии, незная где и как он хранится, узнать затруднительно.

В будущем, чтобы не-было десятков страниц с сообщениями-попытками понять друг-друга, формулируйте более корректно свои вопросы.

К примеру, Ваш вопрос стоило бы сформулировать примерно так

Делаю свою обновлялку потому что - "описание причины"
Делаю по следующему принципу - "описание того что и как делаете"
(в вашем случае с помощью tcpclient-а эмулирую поведение svn клиента, также шлю запросы серверу и методом парсинга ответов получаю нужную инфу)

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

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

Еще можно бегло почитать вики
и книгу

Ну и последнее. Что послужило поводом изобретать свой велосипед?
Чем не утраивают готовые клиенты? Я вот уже какой год TortoiseSVN пользуюсь и даже половины функционала не освоил.


P.S. У кого есть права - отрежьте 7-8 сообщений в отдельную тему.

карма: 0

0
Ответов: 497
Рейтинг: 16
#9: 2016-06-25 19:19:07 ЛС | профиль | цитата
tom-it,
tom-it писал(а):
Что послужило поводом изобретать свой велосипед?
у знакомого вафли нет а только модем и соединение очень нестойкое и как результат обновить как следует не получается. + была идея "сервиса" для фонового обновления
tom-it писал(а):
или какой запрос отправить чтобы получить номер ревизии отдельного файла.
куда отправить что и как я же только схему кридоса выдела остальных вариантов я не знал потому и спросил все
tom-it писал(а):
незная где и как он хранится, узнать затруднительно
ну вот это можно было сказать и все вопрос закрыт
карма: 1
        ]  
0
Ответов: 1058
Рейтинг: 76
#10: 2016-06-25 20:57:25 ЛС | профиль | цитата
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

0
Ответов: 1841
Рейтинг: 369
#11: 2016-06-25 22:30:01 ЛС | профиль | цитата
RAWY_EX писал(а):
у знакомого вафли нет а только модем и соединение очень нестойкое и как результат обновить как следует не получается.

SVN протокол и клиентская реализация оного, и так очень качественно реализованы.
Тут уже есть версирование, сравнение хешей, локальная копия версии, возможность работы через проксю.
Также в моей оболочке реализована обработка многих вариантов ошибок обновлений, что сильно упростит обновление с постоянными ошибками (плохое соединение) относительно предлагаемых продвинутых клиентов.
А ведь все эти ситуации (блокировки, изменённые/повреждённые файлы, смена версии протокола/системы версировании) придётся обрабатывать самому, также потеряется совместимость со всеми остальными клиентами.
Единственное что отсутствует, так это работа в качестве сервиса, но по моим соображениям, это будет лишним на данный момент времени.
Так что, удачи Вам.

p.s ТС скорее всего имеет ввиду версию 1.8.*, которая была ещё на HiAsm: https://yadi.sk/d/aBj3YqB9snhpb
Это обычная оболочка над консольным клиентом, без какой либо обработки ошибок.

p.s.s к последней версии обновлятора схемы нет, только исходники: https://bitbucket.org/CriDos/hisvn2
карма: 1
1
Голосовали:LastLeader
11
Сообщение
...
Прикрепленные файлы
(файлы не залиты)