Зависает kdiff3 при трехстороннем сравнении
Всем привет.
Периодически, при 3х стороннем сравнении при обновлении конфигурации, kdiff3 зависает, и снять процесс можно только в диспетчере задач. Зависнуть может на сравнении как больших, так и маленьких модулей.
Чтобы он не зависал, временно помогает только перезагрузка.
Уже второй комп, другая винда - была win7, сейчас win10, а проблема так и остается.
Пробовал как 32 битную версию ставить, так и 64, разницы какой-то не заметил.
kdiff версии 0.9.98.
Кто-нибудь сталкивался?
И самое главное - кто-нибудь смог исправить это?
Зависает на этапе как на скрине.
Периодически, при 3х стороннем сравнении при обновлении конфигурации, kdiff3 зависает, и снять процесс можно только в диспетчере задач. Зависнуть может на сравнении как больших, так и маленьких модулей.
Чтобы он не зависал, временно помогает только перезагрузка.
Уже второй комп, другая винда - была win7, сейчас win10, а проблема так и остается.
Пробовал как 32 битную версию ставить, так и 64, разницы какой-то не заметил.
kdiff версии 0.9.98.
Кто-нибудь сталкивался?
И самое главное - кто-нибудь смог исправить это?
Зависает на этапе как на скрине.
Прикрепленные файлы:
По теме из базы знаний
Найденные решения
Внесу 5 копеек. Я решаю проблему так:
1. Убиваю зависший процесс kdiff3.
2. Копирую в буфер обмен что-нибудь, кроме текста. Например, файл в проводнике.
3. Повторно запускаю сравнение в 1С.
После этого зависания не повторяются, пока снова не скопируешь в буфер какой-нибудь неудачный текст.
Есть смутное подозрение, что зависание происходит после того, как скопируешь в буфер текст, похожий на имена файлов для сравнения.
На чем основаны подозрения: В процессе объединения конфигурации я записываю в текстовый файл имена объектов, с которыми надо разобраться позже. Для этого я копирую их полные имена из отчета о сравнении объектов. Иногда после этого и происходит зависание.
Возможный сценарий:
1) я скопировал в буфер текст "Справочник.Контрагенты.Форма.ФормаЭлемента",
2) а потом объединяю модуль менеджера этого же справочника.
В командной строке запуска kdiff3 присутствует текст "Справочник.Контрагенты.Модуль менеджера".
Возможно, из-за этого и происходит зависание.
UPD:
Хах! Проверил "возможный сценарий", который описал выше. KDiff зависла!
Кажется, гипотеза верна.
(kdiff3 Version 0.9.98 (64 bit))
1. Убиваю зависший процесс kdiff3.
2. Копирую в буфер обмен что-нибудь, кроме текста. Например, файл в проводнике.
3. Повторно запускаю сравнение в 1С.
После этого зависания не повторяются, пока снова не скопируешь в буфер какой-нибудь неудачный текст.
Есть смутное подозрение, что зависание происходит после того, как скопируешь в буфер текст, похожий на имена файлов для сравнения.
На чем основаны подозрения: В процессе объединения конфигурации я записываю в текстовый файл имена объектов, с которыми надо разобраться позже. Для этого я копирую их полные имена из отчета о сравнении объектов. Иногда после этого и происходит зависание.
Возможный сценарий:
1) я скопировал в буфер текст "Справочник.Контрагенты.Форма.ФормаЭлемента",
2) а потом объединяю модуль менеджера этого же справочника.
В командной строке запуска kdiff3 присутствует текст "Справочник.Контрагенты.Модуль менеджера".
Возможно, из-за этого и происходит зависание.
UPD:
Хах! Проверил "возможный сценарий", который описал выше. KDiff зависла!
Кажется, гипотеза верна.
(kdiff3 Version 0.9.98 (64 bit))
kdiff версии 0.9.98.
Прочтите внимательно о чем написано на странице скачивания:
This repository is no longer maintained and is kept for archival purposes. See for the newest code and for release bundles.
Версия 0.9.98 является устаревшей. По адресу уже есть версия 1.9.2. К сожалению последние релизы у меня тоже периодически зависают. С версией 1.8.5 проблем с зависанием пока не обнаружил.
Есть способ обхода проблем с зависанием kdiff3. Как минимум на версии 1.8.5.
Если зависло, то следует:
1) скопировать сравниваемые файлы (они обычно находятся в каталоге %TMP%\mrg) в сторонний каталог
2) принудительно завершить процесс kdiff3
3) вернуть скопированные файлы обратно
4) запустить kdiff3 интерактивно и в нем выбрать для сравнения эти файлы и сравнить
5) закрыть kdiff3
6) запустить сравнение в 1С - зависать не будет
Если зависло, то следует:
1) скопировать сравниваемые файлы (они обычно находятся в каталоге %TMP%\mrg) в сторонний каталог
2) принудительно завершить процесс kdiff3
3) вернуть скопированные файлы обратно
4) запустить kdiff3 интерактивно и в нем выбрать для сравнения эти файлы и сравнить
5) закрыть kdiff3
6) запустить сравнение в 1С - зависать не будет
Спешу поделиться решением зависания:
Открываете что-нибудь, типа блокнота, вносите изменения, после чего нажимаете на перезагрузку винды, она не происходит, тк открыт блокнот, после чего жмете отмену, и kdiff отвисает)
В общем костылек, но помогает быстро.
Открываете что-нибудь, типа блокнота, вносите изменения, после чего нажимаете на перезагрузку винды, она не происходит, тк открыт блокнот, после чего жмете отмену, и kdiff отвисает)
В общем костылек, но помогает быстро.
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
попробуйте из консоли
kdiff3 file1 file2 file3 -o outputfile
и да, не знаю , как окажется наличие питона python 3.6 or later
On Windows 10 this will be the default shell.
Run the following:
1)Set-ExecutionPolicy -Scope CurrentUser RemoteSigned
2)iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/KDE/craft/master/setup/install_craft.ps1'))
больше вариантов нет
хотя нет, - есть - для супер пользователя инфостарт :)
starik-2005
дать файлы
и попросить проверить на линуксе
или сами, если кеды установлены
kdiff версии 0.9.98.
Прочтите внимательно о чем написано на странице скачивания:
This repository is no longer maintained and is kept for archival purposes. See for the newest code and for release bundles.
Версия 0.9.98 является устаревшей. По адресу уже есть версия 1.9.2. К сожалению последние релизы у меня тоже периодически зависают. С версией 1.8.5 проблем с зависанием пока не обнаружил.
(8) По умолчанию платформа не задает параметры для автоматического 3х стороннего объединения для p4merge. См.файл.
У kidff3 как для меня огромный плюс как раз в этой возможности - из 3х текстов модулей (старая конфигурация поставщика - А, основная конфигурация - Б, новая конфигурация поставщика - С) автоматически выберет изменения каких строк модулей (из А, Б или С) надо брать.
То есть, если А и Б совпадают, а изменения в С - берет из С.
Если А и С совпадают, а Б отличается - берет из Б.
И для простых случаев она все делает сама. Вникать нужно только когда А, Б и С одновременно отличаются.
У kidff3 как для меня огромный плюс как раз в этой возможности - из 3х текстов модулей (старая конфигурация поставщика - А, основная конфигурация - Б, новая конфигурация поставщика - С) автоматически выберет изменения каких строк модулей (из А, Б или С) надо брать.
То есть, если А и Б совпадают, а изменения в С - берет из С.
Если А и С совпадают, а Б отличается - берет из Б.
И для простых случаев она все делает сама. Вникать нужно только когда А, Б и С одновременно отличаются.
Прикрепленные файлы:
(8) Это Вы не пробовали роли в нем объединять, когда изменились шаблоны и состав метаданных и количество конфликтов за тысячу. Например выбираете синий ромб, чтобы без объединения оставить свою локальную копию и получаете зависание с нагрузкой процессора. Час ждал, не дождался.
(16)Во вложении, но через некоторое время тоже стал зависать при 3х стороннем сравнении =(
Прикрепленные файлы:
kdiff3-1.8.5-windows-64-cl.exe
Использую версию kDiff3 1.9.5 (последняя на текущий момент). Отключил в настройках kDiff3 ("Настройка" - "Настроить kDiff3", вкладка "Merge") опцию "Отображать информационные окна". Проблем стало значительно меньше.
Есть способ обхода проблем с зависанием kdiff3. Как минимум на версии 1.8.5.
Если зависло, то следует:
1) скопировать сравниваемые файлы (они обычно находятся в каталоге %TMP%\mrg) в сторонний каталог
2) принудительно завершить процесс kdiff3
3) вернуть скопированные файлы обратно
4) запустить kdiff3 интерактивно и в нем выбрать для сравнения эти файлы и сравнить
5) закрыть kdiff3
6) запустить сравнение в 1С - зависать не будет
Если зависло, то следует:
1) скопировать сравниваемые файлы (они обычно находятся в каталоге %TMP%\mrg) в сторонний каталог
2) принудительно завершить процесс kdiff3
3) вернуть скопированные файлы обратно
4) запустить kdiff3 интерактивно и в нем выбрать для сравнения эти файлы и сравнить
5) закрыть kdiff3
6) запустить сравнение в 1С - зависать не будет
(19)
Хотел поделиться опытом как проще, но оказалось заново пришлось грузить поставщика и потеря 2 часа.
Я удалил содержимое %TMP%\mrg - После этого Kdiff3 зашевелился, но потом при завершении обновлении основной, вылетела ошибка что нет файла из этой папки и вылетел из конфигуратора.
Т.Е. отрицательный опыт)))
%TMP%\mrg
Хотел поделиться опытом как проще, но оказалось заново пришлось грузить поставщика и потеря 2 часа.
Я удалил содержимое %TMP%\mrg - После этого Kdiff3 зашевелился, но потом при завершении обновлении основной, вылетела ошибка что нет файла из этой папки и вылетел из конфигуратора.
Т.Е. отрицательный опыт)))
(19)
Еще немного оптимизировал алгоритм)) Просто запускаю рядом с зависшим кдифом еще одну копию, сравниваю в ней файлы из папки из п.1. Закрываю второй кдиф, завершаю из диспетчера зависший кдиф и перезапускаю из 1С сравнение
Еще немного оптимизировал алгоритм)) Просто запускаю рядом с зависшим кдифом еще одну копию, сравниваю в ней файлы из папки из п.1. Закрываю второй кдиф, завершаю из диспетчера зависший кдиф и перезапускаю из 1С сравнение
(19) А можно для тех кто не имеет доступа к партнерскому форму хотя бы в 2 словах - это проблема платформы или kdiff? Если платформы - планируется ли какое-либо исправление? Есть ли сроки (да, я знаю что сроки там не пишут, но может хоть какие-то намёки)?
Спешу поделиться решением зависания:
Открываете что-нибудь, типа блокнота, вносите изменения, после чего нажимаете на перезагрузку винды, она не происходит, тк открыт блокнот, после чего жмете отмену, и kdiff отвисает)
В общем костылек, но помогает быстро.
Открываете что-нибудь, типа блокнота, вносите изменения, после чего нажимаете на перезагрузку винды, она не происходит, тк открыт блокнот, после чего жмете отмену, и kdiff отвисает)
В общем костылек, но помогает быстро.
(26)
спасибо бро, работает! реально частые зависы достали. Мне кажется что-то в памяти "оседает" у него. но скажем перезагрузить сервак такое себе. да и большое сравнение потом заново начинать не вариант - можно еще час потерять.
спасибо бро, работает! реально частые зависы достали. Мне кажется что-то в памяти "оседает" у него. но скажем перезагрузить сервак такое себе. да и большое сравнение потом заново начинать не вариант - можно еще час потерять.
удаляю kDiff, сторонней программой удаляю все файлы kdiff из programfiles, устанавливаю заново. Пока помогает
MS Windows 10 Pro
1С:Предприятие 8.3 (8.3.19.1467)
kdiff3 Version 0.9.97 (64 bit)
помогает очистка c:\Users\<ИмяПользователя>\AppData\Local\Temp\mrg\
1С:Предприятие 8.3 (8.3.19.1467)
kdiff3 Version 0.9.97 (64 bit)
помогает очистка c:\Users\<ИмяПользователя>\AppData\Local\Temp\mrg\
Не знаю будет кому полезно или нет. Сегодня тоже столкнулся с проблемой зависания при объединении двух файлов. Версия kdiff3 1.10.5.
Проблема решилась запуском kdiff3 через BAT-файл с задержкой в пол секунды. Экспериментальным путем дошёл до задержки в 50мс. Пока полёт нормальный.
Проблема решилась запуском kdiff3 через BAT-файл с задержкой в пол секунды. Экспериментальным путем дошёл до задержки в 50мс. Пока полёт нормальный.
(43) Сегодня с использованием этого батника kdiff3 завис при первой же попытке сравнения/объединения. Так что батник полностью проблему не устраняет... Закрытие kdiff3 и перезапуск батника не помог - опять зависание.
После этого сделал следующее:
запустил process explorer,
нашёл запущенный процесс kdiff3, скопировал строку запуска (Image / Command line),
закрыл процесс kdiff3, батник не закрывал - оставил работать,
запустил ту строку запуска из консоли.
kdiff3 запустился, не завис
закрыл kdiff3 с сохранением изменений. Изменения подгрузились в конфигуратор.
После этого kdiff3 опять стал работать без зависаний прямо из 1с через батник.
После этого сделал следующее:
запустил process explorer,
нашёл запущенный процесс kdiff3, скопировал строку запуска (Image / Command line),
закрыл процесс kdiff3, батник не закрывал - оставил работать,
запустил ту строку запуска из консоли.
kdiff3 запустился, не завис
закрыл kdiff3 с сохранением изменений. Изменения подгрузились в конфигуратор.
После этого kdiff3 опять стал работать без зависаний прямо из 1с через батник.
(33) При использовании этой версии с git получаю стабильный Segmentation Fault + замусориванием локального репозитория файлами .orig и .bak, хотя параметры в .git/config
keepTemporaries = false
keepBackup = false
включены.
keepTemporaries = false
keepBackup = false
включены.
Некропост, но всё же. Только что нашел вариант как быстро вернуть KDiff 0.9.98 к жизни после описанной в посте проблемы: запускаем KDiff, открываем в нём на сравнение пару любых файлов, закрываем его. Всё. После этого он оживает из конфигуратора.
(50) Проверил через командную строку. Работает. Удобнее чем через провокацию перезагрузки:
1. следующее сравнение не зависает
2. после попытке перезагрузки некоторые приложения, например Яндекс.Диск, слетают.
1. следующее сравнение не зависает
2. после попытке перезагрузки некоторые приложения, например Яндекс.Диск, слетают.
Оговорюсь, что у меня небольшая тестовая выборка, поскольку остановил свой выбор на DiffMerge.
Но все же после применения метода ни одного зависания не было.
Почти как в (46), только не надо дожидаться зависания.
Просто перед сравнением открыть не из конфигуратора пустое окно KDiff.
И дальше пользоваться им из конфигуратора при постоянно открытом экземпляре приложения.
Но все же после применения метода ни одного зависания не было.
Почти как в (46), только не надо дожидаться зависания.
Просто перед сравнением открыть не из конфигуратора пустое окно KDiff.
И дальше пользоваться им из конфигуратора при постоянно открытом экземпляре приложения.
Внесу 5 копеек. Я решаю проблему так:
1. Убиваю зависший процесс kdiff3.
2. Копирую в буфер обмен что-нибудь, кроме текста. Например, файл в проводнике.
3. Повторно запускаю сравнение в 1С.
После этого зависания не повторяются, пока снова не скопируешь в буфер какой-нибудь неудачный текст.
Есть смутное подозрение, что зависание происходит после того, как скопируешь в буфер текст, похожий на имена файлов для сравнения.
На чем основаны подозрения: В процессе объединения конфигурации я записываю в текстовый файл имена объектов, с которыми надо разобраться позже. Для этого я копирую их полные имена из отчета о сравнении объектов. Иногда после этого и происходит зависание.
Возможный сценарий:
1) я скопировал в буфер текст "Справочник.Контрагенты.Форма.ФормаЭлемента",
2) а потом объединяю модуль менеджера этого же справочника.
В командной строке запуска kdiff3 присутствует текст "Справочник.Контрагенты.Модуль менеджера".
Возможно, из-за этого и происходит зависание.
UPD:
Хах! Проверил "возможный сценарий", который описал выше. KDiff зависла!
Кажется, гипотеза верна.
(kdiff3 Version 0.9.98 (64 bit))
1. Убиваю зависший процесс kdiff3.
2. Копирую в буфер обмен что-нибудь, кроме текста. Например, файл в проводнике.
3. Повторно запускаю сравнение в 1С.
После этого зависания не повторяются, пока снова не скопируешь в буфер какой-нибудь неудачный текст.
Есть смутное подозрение, что зависание происходит после того, как скопируешь в буфер текст, похожий на имена файлов для сравнения.
На чем основаны подозрения: В процессе объединения конфигурации я записываю в текстовый файл имена объектов, с которыми надо разобраться позже. Для этого я копирую их полные имена из отчета о сравнении объектов. Иногда после этого и происходит зависание.
Возможный сценарий:
1) я скопировал в буфер текст "Справочник.Контрагенты.Форма.ФормаЭлемента",
2) а потом объединяю модуль менеджера этого же справочника.
В командной строке запуска kdiff3 присутствует текст "Справочник.Контрагенты.Модуль менеджера".
Возможно, из-за этого и происходит зависание.
UPD:
Хах! Проверил "возможный сценарий", который описал выше. KDiff зависла!
Кажется, гипотеза верна.
(kdiff3 Version 0.9.98 (64 bit))
(54) Уточнение.
Чтобы kdiff3 зависла, надо скопировать в буфер "голый" неформатированный текст.
Например, если скопировать тестовый текст из поста (54) в браузере, то зависания не будет, т.к. в буфер, кроме собственно текста, будет скопирован и его стиль (в этом можно убедиться, если вставить скопированный текст в Word, например).
Чтобы kdiff3 зависла, надо скопировать в буфер "голый" неформатированный текст.
Например, если скопировать тестовый текст из поста (54) в браузере, то зависания не будет, т.к. в буфер, кроме собственно текста, будет скопирован и его стиль (в этом можно убедиться, если вставить скопированный текст в Word, например).
Отсюда вывод:
Чтобы kdiff3 не зависала, надо следить за буфером обмена. В нем не должно быть полных имен объектов 1С. ))
Чтобы kdiff3 не зависала, надо следить за буфером обмена. В нем не должно быть полных имен объектов 1С. ))
(56) Подтверждаю, если при сравнении общих модулей скопировать имя сравниваемого общего модуля в буфер, kdiff3 зависает. Если после этого завершить процесс, и в буфер скопировать что-то другое, даже просто текст, сравнение открывается нормально.
Гениально! =)
Гениально! =)
(63) Поддержка 1С ответила:
Здравствуйте!
Благодарим Вас за информацию об ошибке и пример воспроизведения. Зарегистрирована новая ошибка платформы 60024832. Через некоторое время она появится на Для отслеживания статуса ошибки, на нее необходимо подписаться. Если исправление для Вас важно, то отметьте это в карточке ошибки. Нажимая на кнопку "Для меня исправление важно" Вы повышаете приоритет ошибки. Ошибки с более высоким приоритетом исправляются раньше.
Благодарим Вас за информацию об ошибке и пример воспроизведения. Зарегистрирована новая ошибка платформы 60024832. Через некоторое время она появится на Для отслеживания статуса ошибки, на нее необходимо подписаться. Если исправление для Вас важно, то отметьте это в карточке ошибки. Нажимая на кнопку "Для меня исправление важно" Вы повышаете приоритет ошибки. Ошибки с более высоким приоритетом исправляются раньше.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот