Russian Qt Forum
Май 04, 2024, 13:50 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 ... 12 13 [14] 15 16 ... 88   Вниз
  Печать  
Автор Тема: Создаю библиотеку для работы с последовательными портами. [УШЕЛ ИЗ ПРОЕКТА].  (Прочитано 752794 раз)
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #195 : Июнь 24, 2010, 17:08 »

у тебя в ветке master какие исходники лежат?
копия правки 147 из SVN'а?
Я вижу отличия. поэтому делай по первому пункту, но не сливай с мастером, как вытянишь мой клон, через меню "Внешние репозитарии" так отпишись
« Последнее редактирование: Июнь 24, 2010, 17:13 от lit-uriy » Записан

Юра.
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #196 : Июнь 24, 2010, 17:22 »

Цитировать
у тебя в ветке master какие исходники лежат?
копия правки 147 из SVN'а?
Я вижу отличия. поэтому делай по первому пункту, но не сливай с мастером, как вытянишь мой клон, через меню "Внешние репозитарии" так отпишись

1. В мастер лежат новые исходники, которые к SVN никоим образом не относятся... т.е я эти исходники уже дорабатывал после правки №147 когда SVN был мертв. И я не заливал эти изменения (новые исходники) в SVN (т.к. он был в нагдауне)  - а залил в Git в мастер!

2. Я сравнил Git master твой и мой и обнаружил, что дерево исходных кодов и у тебя и у меня одинаковое. С той лишь разницей, что у тебя там есть история коммитов..

Поэтому, имхо, можно действовать по п.2 Улыбающийся ...  Если что - восстановить всегда можно. Давай, делай уже мне Merge  Смеющийся
Записан

ArchLinux x86_64 / Win10 64 bit
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #197 : Июнь 24, 2010, 17:56 »

>>т.е я эти исходники уже дорабатывал после правки №147
вот и я про тоже, у тебя версия свежее, будет куча конфликтов.
Нужно наоборот, в мою ветку слить твой master.

Ну да ладно, я слил как положено у себя в хранилище и отправил тебе запрос на слияние.
Записан

Юра.
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #198 : Июнь 24, 2010, 18:50 »

Вроде слил.. а вроде и не слил....  Проверь пжлста.. Почему - то висит твой запрос на слияние.. Его нужно закрывать после слияния?
Записан

ArchLinux x86_64 / Win10 64 bit
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #199 : Июнь 24, 2010, 19:28 »

Инструкция:
* в Git GUI своего локального хранилища "Вспомогательные операции" -> "Добавить"
* в открывшемся диалоге:
** "Название" = merge_request
** "Команда" = git pull git://gitorious.org/qserialdevice/qserialdevice.git refs/merge-requests/$ARGS
** ставим галки: "показать диалог перед запуском" -> "Запрос доп аргументов"
* нажимаем кнопку "Добавить"
(Эти команды полагалось в водить в консоли, но я ленивый)

Теперь, мы можем создать ветку от текущего мастера, например "integration", чтобы его не коцать. (Смотри меню "Ветки")

Вытаскиваем запрос на слияние из гиториуса:
* "Вспомогательные операции" -> "merge_request"
* В появившемся диалоге запроса параметров, введи номер запроса на слияние, можно посмотреть в адресе:
Цитировать

После того, как ты изучишь изменения сливаешь так:
Переходишь в ветку master (или ту в которую хочешь слить), затем меню "слияние". Если конфликтов нет, то будет тишина.

Затем отправляешь ветвь мастер на гиториус, чтобы её там обновить.

вот оригинальная инструкция:
Код
Bash
One way to merge in these changes is to pull them into a local branch for review, verifying the changes and then merge to back to master.
# Check out a new branch for integration
git checkout -b integration
 
# Fetch the merge request into this branch
git pull \
 git://gitorious.org/qserialdevice/qserialdevice.git \
 refs/merge-requests/1
 
# Show the commits, assess they are okay
git log --pretty=oneline --abbrev-commit master..integration
 
# To apply the changes to your master branch:
git checkout master
git merge integration
git push origin master

« Последнее редактирование: Июнь 24, 2010, 19:29 от lit-uriy » Записан

Юра.
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #200 : Июнь 24, 2010, 20:23 »

Вот на этих пунктах:
Цитировать
Вытаскиваем запрос на слияние из гиториуса:
* "Вспомогательные операции" -> "merge_request"
* В появившемся диалоге запроса параметров, введи номер запроса на слияние, можно посмотреть в адресе:
Цитировать
http://gitorious.org/qserialdevice/qserialdevice/merge_requests/1

Выскакивает диалоговое окно " ... Вспомогательные операции merge_requests "

c ошибкой красным цветом:

Цитировать
fatal: Couldn't find remote ref refs/merge-requests/http
Записан

ArchLinux x86_64 / Win10 64 bit
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #201 : Июнь 24, 2010, 21:14 »

c ошибкой красным цветом:

Цитировать
fatal: Couldn't find remote ref refs/merge-requests/http
ты не внимательно читаешь:
Цитировать
В появившемся диалоге запроса параметров, введи номер запроса на слияние, можно посмотреть в адресе:
и в адресе я выделил, что посмотреть.
Записан

Юра.
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #202 : Июнь 25, 2010, 20:43 »

Что-то  опять не получается. Решил с нуля все начать:
1. Удалил на компе директорию в которой находился локальный репозитарий (вместе с .git)
2. Запустил Git-GUI
3. В показавшемся диалоге выбрал "Склонировать существующий репозиторий"
4. Показались поля ввода:
 "исходное положение" вставил: git://gitorious.org/qserialdevice/qserialdevice.git
 "каталог назначения" вставил путь типа D:\Git\qserialdevice (т.е. чтобы сюда слить)
5. Жмакнул "склонировать"
6. Программа создала у меня в D:\Git\qserialdevice дерево исходных кодов проекта
7. Одновременно с этим открылось окно с з-мя фреймами:
 красный - Изменено (не будет сохранено) - пустой
 зеленый - Подготовлено (будетсохранено) - пустой
 желтый - пустой.

Текущая ветвь : master

В пункте меню "Внешние репозитории"->"Получение из" : origin

8. В пункте "Вспомогательные операции"->"Добавить" пишу:
 Название : merge_request
 Команда : git pull git://gitorious.org/qserialdevice/qserialdevice.git refs/merge-requests/$ARGS

Ставлю галки: "Показать диалог перед запуском"->"Запрос доп аргументов"
9. Жму "Add"

10. В меню "Ветвь"->"Создать" пишу:
 Название: integration

При этом курсор в окне подсвечивает синим "локальная ветвь" - master
Остальное по умолчанию остается.
11. Жмакаю "Создать"
12. В главном окне Git-GUI теперь стало:
Текущая ветвь: integration
Фреймы:
 красный - Изменено (не будет сохранено) - пустой
 зеленый - Подготовлено (будетсохранено) - пустой
 желтый - пустой.

13. В пункте меню "Вспомогательные операции"->merge_request
пишу в поле Аргументы : 1

14. Жму "ОК"
15. Программа сообщает что процесс успешно завершен.

16. Я проверяю что это так:выбираю  в меню "Репозиторий"->"Показать историю ветви: integration" и вижу что есть история коммитов которая была в SVN.

17. В меню "Ветвь"->"Перейти" выбираю master.
18. Жму "Перейти"
19. Теперь у меня в главном окне с фреймами Текущая ветвь : master , при этом фреймы пустые.
20. Выбираю меню "Слияние"->"Локальное слияние" и выбираю :
Локальная ветвь : integration
21. Жму "Слияние"
22. Программа говорит что процесс успешно завершен.
23. Проверяю (аналогично п. 16) . Все ОК.. История есть.

24. Выбираю меню "Внешние репозитории"->"Отправить"
Выбираю
Исходные ветви: master
Репозиторий назначения :Внешний: origin
Ставлю галку: Намеренно переписать существующую ветвь

25. Жму "Отправить"
26. Получаю:

Цитировать
Pushing to git://gitorious.org/qserialdevice/qserialdevice.git
fatal: protocol error: expected sha/ref, got '
----------------------------------------------
The git:// protocol is read-only.

Please use the push url as listed on the repository page.
----------------------------------------------'

Ошибка: не удалось выполнить команду.

------------

ЧЯДНТ?










   
Записан

ArchLinux x86_64 / Win10 64 bit
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #203 : Июнь 25, 2010, 21:12 »

Чтобы отправлять, нужен "push URL" (адрес для отправки), владельцу хранилища он обычно по умолчанию показывается.
Обычно используют SSH, тогда адрес выглядит примерно так:
git@gitorious.org:~lit-uriy/qserialdevice/lit-uriys-qserialdevice.git


посмотри его на Гиториусе, затем
в файле .git/config
исправь в разделе origin адрес:
git://gitorious.org/qserialdevice/qserialdevice.git
на "push URL"

На гиториусе возле адреса знак вопроса есть, глянь туда, должен увидеть примерно такую инструкцию:
Цитировать
Adding this repository as a pushable origin:
git remote add origin git@gitorious.org:~lit-uriy/qserialdevice/lit-uriys-qserialdevice.git
# to push the master branch to the origin remote we added above:
git push origin master
# after that you can just do:
git push

« Последнее редактирование: Июнь 25, 2010, 21:16 от lit-uriy » Записан

Юра.
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #204 : Июнь 25, 2010, 21:25 »

lit-uriy ,

все, вроде получилось. Спасибо!  Строит глазки

Делал так:

1. Залогинился на gitorgious
2. Посмотрел там адрес.
3. В Git-GUI в меню "Внешние репозитории"->"добавить"

Добавил репозиторий с названием "OK" и адресом из п.2.
При этом галку поставил "Ничего не делать"

4. Выполнил п.24,25 из предыдущего моего поста с той лишь разницей, что в качестве репозитория назначения выбрал с меткой "OK"
5. Отправка без ошибок прошла..

6. Чтобы проверить выполнил п.  1-6 предыдущего поста а потом п. 16.
7. Вроде все нормально..

--------------

Только на сайте висит запрос.. Его нужно закрыть?

---

Все.. вроде закрыл.. вопрос снимается
« Последнее редактирование: Июнь 25, 2010, 21:27 от kuzulis » Записан

ArchLinux x86_64 / Win10 64 bit
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #205 : Июнь 25, 2010, 22:25 »

>>Его нужно закрыть?
На будущее: если ты слил изменения, то не закрывай, а выбирай статус "Merged", чтобы тот, кто посылает запрос знал, что изменение было принято.
Если отклоняешь, то соответствующий статус и комментарий, почему отклонено.
Записан

Юра.
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #206 : Июль 02, 2010, 18:16 »

юрамеханик,

вроде бы я исправил код, должно работать, проверьте!
Записан

ArchLinux x86_64 / Win10 64 bit
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #207 : Июль 03, 2010, 17:16 »

Недавно столкнулся с проблемой под *.nix (также и в MacOSX) , которая заключается в следующем:

если извлечь открытый порт (преобразователь USB/Serial) из PC происходит вечное излучение сигнала readyRead()!!!

т.е. срабатывает QSocketNotifier типа Read, т.е. реально вызов ::select() начинает возвращать > 0 как будто бы в порт пришли данные. Но реально никаких данных там и в помине нет!!! Почему так происходит я не знаю. Нужно разбираться.
Пока эта проблема не решена!!!
Записан

ArchLinux x86_64 / Win10 64 bit
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #208 : Июль 03, 2010, 17:36 »

>>Нужно разбираться.
может стоит написать автору драйвера?
Записан

Юра.
Magvaj
Гость
« Ответ #209 : Июль 04, 2010, 09:46 »

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

1) Под виндой при попытке опросить порт, скажем COM1, где никого нет- библиотека повисает внутри себя. Версия 0.2. Виснет намертво. Пробовали на 3-х компах.
2) При работе с расширителями портов(типа USB-Com или PCI-Com) частенько присылает неправильные данные. Благо оборудование отправляет CRC и я эти пакеты быстро дефектую. Пробовал QExtSerialPort- данные тоже не всегда правильные, но реже. С другими библиотеками данные правильные всегда.
3) Под линью на версии 0.2 библиотека даже последней сборки не освобождает открытый порт. Приходится пользовать версию 0.1.
4) Прислали тут хитрое устройство- убил два дня, пытаясь понять где беда. Библиотека версии 0.1 отправляет данные нормально, но принимает всякую ерунду, то байт один не дошлёт, то дублирует сообщение два раза. Версия 0.2 вылетает сразу при попытке что-то прочитать. Устройство сейчас работает на QExtSerialPort. Смысл в том, что устройство очень критично к таймаутам и лишним чтениям. Нет ли в библиотеке лишних очисток или проверок порта?
5) есть такие хитрые чековые принтеры- они подключены по USB, но настраиваются через драйвер Virtual Com для прямого доступа к ним. Так вот, если при такой ситуации открывать порт на версии 0.2 винда валится в синий экран. Нашёл драйвер по новее. Синий экран перестал беспокоить. НО! При попытке удалить экземпляр класса QSerialDevice- прога повисает намертво. Если сначала вручную закрыть порт, а потом сделать delete- всё отлично. Но прога имеет свойсто быть убитой извне. Поэтому повисания довольно неприятны. На других библиотеках повисаний и синих экранов не наблюдается.

По всем пунктам, если потребуется, могу выслать подробные логи записи/чтения порта.
Записан
Страниц: 1 ... 12 13 [14] 15 16 ... 88   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.065 секунд. Запросов: 23.