Reparse points

Здесь можно сообщить о найденных багах в Far.
Post Reply
Zadira
Posts: 2
Joined: Wed 26 Aug, 2009 18:48

Reparse points

Post by Zadira »

Zaranee izvinyajus' za translit, russkaya raskladka otsutstuet v printsipe: corporate environment.
Problema v sledujuschem: esli v dereve katalogov suschestvuet ssilka na katalog predka (ili na sebya) (a na Vista nekotorije pol'zovatel'skiye katalogi po umolcha imejut takiye linki) tree viewer vpadaet v dlitel'niy (poka max internal length reached?) tsikl razbora puteshestvuja po ssilkam. Bilo bi neploho vstavit' kusok obnarugeniya tsiklicheskih ssilok, chtobi tree view po nim ne hodil.

vosproizvoditsya elementarno
c:
cd \
mkdir tmp
mkdir tmp\tmp2
cd tmp\tmp2
junction tmp3 c:\tmp

Cheers.
Dark_Diver
Posts: 21
Joined: Wed 26 Aug, 2009 10:59
Location: Kyiv
Has thanked: 1 time
Been thanked: 1 time

Re: Reparse points

Post by Dark_Diver »

И по F3 размер содержимого каталогов тоже долго и неправильно считается, ходя по циклическим ссылкам. Действительно было бы хорошо что-нибудь с этим сделать.
User avatar
DrKnS
Posts: 5673
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 9 times
Been thanked: 310 times

Re: Reparse points

Post by DrKnS »

System settings - [ ] Scan symbolic links.
Bilo bi neploho vstavit' kusok obnarugeniya tsiklicheskih ssilok
Было бы неплохо, ага.
Давайте кусок, вставим.
Zadira
Posts: 2
Joined: Wed 26 Aug, 2009 18:48

Re: Reparse points

Post by Zadira »

DrKnS wrote:System settings - [ ] Scan symbolic links.
Bilo bi neploho vstavit' kusok obnarugeniya tsiklicheskih ssilok
Было бы неплохо, ага.
Давайте кусок, вставим.
Priyatno, kogda tsitirujut.
Kstati, ya zaranee za translit izvinilsya...

Po suschestvu ge, pri neblagopriyatnih obstoyatel'stvah mogno poluchit' eksponetsial'nuju bombu, yesli v dochernih katalogah mnogo podkatalogov, kak naprimer hash tables v kakom-nibud' ie temporary. U menaya far zavis na neskol'ko minut i ot'el okolo 200 MB pamyati.
User avatar
DrKnS
Posts: 5673
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 9 times
Been thanked: 310 times

Re: Reparse points

Post by DrKnS »

Если вдруг непонятно - прочтите ещё раз, к вашему транслиту никаких претензий нет.

Эта рекурсия нам тоже не нравится.
Если дадите этот самый "кусок обнаружения циклических ссылок" - с удовольствием его применим.
gerser
Posts: 58
Joined: Tue 11 Oct, 2005 20:13
Location: Сургут
Contact:

Re: Reparse points

Post by gerser »

А разве это такой сложный алгоритм?
Если путь назначения в ссылке совпадает с началом пути, где эта ссылка находится, то это значит цикл. Разве не так?

хотя нужно добавить массив для проверок путей, на случай если:
C:\temp\1 -> C:\other\1
C:\other\1\2 -> C:\temp

Получается, проверять нужно каждый каталог, "где мы уже были".
User avatar
DrKnS
Posts: 5673
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 9 times
Been thanked: 310 times

Re: Reparse points

Post by DrKnS »

А разве это такой сложный алгоритм?
Если путь назначения в ссылке совпадает с началом пути, где эта ссылка находится, то это значит цикл. Разве не так?
Проверять строковое представление, как вы предлагаете - это охрененно сложный алгоритм, серьёзно.
Для рекурсии ссылка не обязательно должна указывать на "начало пути". Она может указывать на другую папку, в которой есть ещё подпапка, на которую смонтирован раздел, на котором есть ссылка, указывающая на диск, который на самом деле subst, указывающий ещё на одну ссылку, которая указывает на шару на удаленной машине, в которой есть ещё одна ссылка, указывающая на исходную папку. И да, прибавьте сюда ещё и относительные ссылки.
Несложно догадаться, что обойти и проверить всё это хозяйство - долго, ресурсоёмко и чревато ошибками.

gerser
Posts: 58
Joined: Tue 11 Oct, 2005 20:13
Location: Сургут
Contact:

Re: Reparse points

Post by gerser »

ну вот, добрались до ссылки, указывающей на исходную папку. Значит, цикл. А относительные пути легко преобразовываются в абсолютные.

А какое ещё представление можно проверять, кроме строкового?
User avatar
chupakabra
Posts: 1023
Joined: Wed 27 Jul, 2005 19:36
Contact:

Re: Reparse points

Post by chupakabra »

gerser
Нажми кнопочку Spoiler в пред. посте.
Post Reply

Return to “Глюки и баги”