Summary: | Ошибка при создании ветки после неудачного завершения | ||
---|---|---|---|
Product: | [Свободные проекты (Open source projects)] WINE-tests | Reporter: | Александр Морозов <amorozov> |
Component: | Общее | Assignee: | Виталий Перов <vitperov> |
Status: | CLOSED FIXED | QA Contact: | |
Severity: | minor | ||
Priority: | P4 | CC: | baraka, lav |
Version: | не указана | ||
Target Milestone: | --- | ||
Hardware: | PC | ||
OS: | All | ||
Whiteboard: | |||
Заявки RT: | Связано с: | ||
Дата напоминания: | |||
Bug Depends on: | |||
Bug Blocks: | 6264 | ||
Attachments: |
Письмо с ошибкой "Cannot allocate memory"
Письмо с ошибкой создания ветки |
Description
Александр Морозов
2010-12-17 18:13:06 MSK
Видимо, стоит добавить код удаления ветки tmp, если она есть. Created attachment 2055 [details]
Письмо с ошибкой "Cannot allocate memory"
Created attachment 2056 [details]
Письмо с ошибкой создания ветки
Прошу прощения за задержку. Ко вторнику постараюсь исправить. В качестве временного решения удалил ветку tmp из локального репозитория 1.0.12 Появились дополнительные сложности. Сначала делается git pull, а уже потом для каждого патча создаётся отдельная ветка tmp. Если же после неудачного завершения ветка tmp остаётся, то pull делается именно в эту временную ветку. Т.е проверять наличие ветки tmp надо перед git pull (В ответ на comment #6) > Т.е проверять наличие ветки tmp надо перед git pull Так тоже не получается. Для того, чтобы удалить ветку tmp, надо из неё переключиться на другую ветку. А на какую ветку конктретно переключаться - не известно, в разных репозиториях она называется по-разному. А хранить название master-ветки для каждого репозитория в настройках скрипта как-то не хочется. (В ответ на comment #7) ... > переключиться на другую ветку. А на какую ветку конктретно переключаться - не > известно, в разных репозиториях она называется по-разному. Нет ничего сложного перед созданием ветки tmp запоминать, где же мы были. (В ответ на comment #8) > Нет ничего сложного перед созданием ветки tmp запоминать, где же мы были. Так оно и делается, при применении патча: запоминается текущая ветка -> переключаемся на tmp -> переключаемся обратно и удаляем tmp При нормальной работе скрипта так и происходит, и tmp удаляется. Проблема возникает когда tmp не удалилась. А вот при повторном запуске скрипта совсем не ясно какая ветка была до переключения в tmp > При нормальной работе скрипта так и происходит, и tmp удаляется.
> Проблема возникает когда tmp не удалилась.
Может, если она есть, не удалять её, а делать в ней git reset --hard origin/нужная_ветка
(В ответ на comment #10) > Может, если она есть, не удалять её, а делать в ней git reset --hard > origin/нужная_ветка В том то и проблема, что нужно узнать эту "нужная_ветка". Видимо придётся хранить в настройках скрипта это значение для каждого репозитория. Другого пути нет. > > Может, если она есть, не удалять её, а делать в ней git reset --hard
> > origin/нужная_ветка
> В том то и проблема, что нужно узнать эту "нужная_ветка".
Скрипт же узнаёт каким-то образом, к какой ветке должны быть приложены патчи.
> Скрипт же узнаёт каким-то образом, к какой ветке должны быть приложены патчи.
Он каждый раз прикладывает к текущей ветке.
А текущая ветка задаётся вручную после начального клонирования репозитория.
Т.е если скрипт не вернулся после выполнения в нужную ветку, то имя нужной ветки он уже не узнает, оно нигде не хранится.
Исправил. Теперь имя нужной ветки берётся из файла настроек. Проверил локально - работает. Решена При тестировании на реальном репозитории выявились проблемы. переключение веток с помощью модуля git-python выполняется с помощью команды self.head.reference = self.heads.новая_ветка В случае с eter-1.0.12 выполняется команда: self.head.reference = self.heads.eter-1.0.12, что и приводит к падению Исправил Исправил проблему при публикации репозитория (использовалась несуществующая переменная с названием ветки, что приводило к падению) Бага больше не появлялась. Думаю багу можно считать исправленной |