символическая ссылка в JDK не может быть переведена в систему контроля версий, есть ли риск?

Когда я пытаюсь продвигать последнюю версию JDK в систему управления версиями (AccuRev), я получаю следующую ошибку:

jdk/bin/ControlPanel': элемент представляет собой символическую ссылку на диске, должен быть файлом или каталогом.

Это НЕ единственная символическая ссылка в последней версии 1.7.0_51 JDK. У меня не было этой проблемы в 1.7.0_09.

Символическая ссылка выше указывает на файл в том же каталоге. Я использую Линукс.

Есть ли риск с этими символическими ссылками для продукта (папка jre имеет ту же символическую ссылку и сообщает о той же ошибке)?

ИЗМЕНИТЬ:

вот еще один:

jdk/jre/lib/amd64/server/libjsig.so': элемент представляет собой символическую ссылку на диске, должен быть файлом или каталогом.

EDIT2:

[XXXXXX server]$ accurev stat -fix libjsig.so

<?xml version="1.0" encoding="utf-8"?>
<AcResponse
    Command="stat"
    Directory="/XXXXXX/3rdparty/java/linux/64bit/jdk/jre/lib/amd64/server"
    TaskId="450242">
  <element
      location="/./XXXXX/3rdparty/java/linux/64bit/jdk/jre/lib/amd64/server/libjsig.so"
      dir="no"
      executable="yes"
      id="12936"
      elemType="binary"
      size="13"
      modTime="1394570292"
      hierType="parallel"
      Virtual="1/1"
      namedVersion="XXXXX/1"
      Real="269/1"
      status="(modified)"/>
</AcResponse>

[XXXXX сервер]$ accurev

AccuRev 5.4.1 (2012/02/28)
Copyright (c) 1995-2012 AccuRev Inc. All rights reserved
type 'accurev help' for help.

[XXXXX сервер]$ ls -l libjsig.so

lrwxrwxrwx 1 XXX XXX 13 Mar 11 16:38 libjsig.so -> ../libjsig.so

person 5YrsLaterDBA    schedule 12.03.2014    source источник
comment
Почему вы храните бинарные дистрибутивы в системе контроля версий?   -  person Thorbjørn Ravn Andersen    schedule 12.03.2014
comment
совместно с другими инженерами, и все используют одну и ту же среду разработки. и в разных проектах используются разные версии, у нас очень старый проект, все еще в JDK 1.4.   -  person 5YrsLaterDBA    schedule 12.03.2014
comment
I didn't have this issue in 1.7.0_09 - по крайней мере для 1.7.0_05 это тоже были символические ссылки. Вы уверены, что проверили ванильный 1.7.0_09?   -  person Andreas Fester    schedule 12.03.2014
comment
Я проверил свои старые настройки разработчика и установил продукт. Они 1.7.0_09 и у них одинаковые файлы. Мой коллега только неделю назад начал помогать мне с этой настройкой без проблем. Сегодня утром я пытался обновить JDK и обнаружил вышеописанную проблему.   -  person 5YrsLaterDBA    schedule 12.03.2014


Ответы (1)


Являются ли эти файлы в настоящее время внешними в вашей рабочей области, и вы выполняете продвижение из своей рабочей области?

Если они внешние, я могу предложить вам запустить команду «accurev add -x -s» из этой рабочей области, а затем продвигать эти файлы. текущее рабочее пространство для преобразования в элементы символической ссылки (на уровне AccuRev).

person jstanley    schedule 12.03.2014
comment
Они отображаются как измененные, но их нельзя сохранить и продвигать. - person 5YrsLaterDBA; 12.03.2014
comment
Что выводит следующая команда? accurev сохранить -c комментарий -m - person jstanley; 12.03.2014
comment
Невозможно сохранить '/XXXXXXXX/3rdparty/java/linux/64bit/jdk/jre/lib/amd64/server/libjsig.so': элемент представляет собой символическую ссылку на диске, должен быть файлом или каталогом. - person 5YrsLaterDBA; 14.03.2014
comment
Можете ли вы также включить следующий вывод? Запустите эти команды из каталога /XXXXXXX/3rdparty/java/linux/64bit/jdk/jre/lib/amd64/server. accurev stat -fix libjsig.so, accurev и ls -l libjsig.so - person jstanley; 14.03.2014
comment
пожалуйста, взгляните на мой оригинальный пост на EDIT2. Спасибо - person 5YrsLaterDBA; 17.03.2014
comment
Что интересно, этот файл является символической ссылкой на диске, но AccuRev говорит, что тип элемента двоичный... elemType=binary... Я ожидал увидеть elemType=slink или elemType=elink. Я бы попробовал выполнить следующие команды: accurev mv libjsig.so libjsig.so.badLink, accurev ln -s ../libjsig.so libjsig.so.... Это должно создать символическую ссылку accurev, как только вы подтвердите это, затем вы можете отменить неверную ссылку, accurev defunct -c удалить неверную ссылку libjsig.so - person jstanley; 17.03.2014