Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2011.05.22;
Скачать: [xml.tar.bz2];

Вниз

Delphi ломает hadl linkи   Найти похожие ветки 

 
@!!ex ©   (2011-01-30 02:01) [0]

Дельфя при сохранении модуля перетаскивает уже существующий файл в папку __history
Если на модуль есть hard link, то он указывает на файл в каталоге __history, а не на сам файл.
Фактически это ломает работу моих хард линков.

Вроде бы символическая ссылка не ломается.
Но символическая поломается при переименовании или переносе файлов...
Можно ли заставить дельфи не перемещать файлы в __history, а делать копию?


 
RWolf ©   (2011-01-30 06:01) [1]

Я бы задался вопросом, насколько вообще разумна практика создания хардлинков на файлы исходников. На мой взгляд, проект не должен полагаться на фичи конкретной файловой системы, во избежание разных побочных эффектов при, скажем, копировании исходников на флэшку, или как в вышеописанном случае (а инструментов, работающих с файлами схожим образом, может быть и больше, за всеми уследить сложно и т.п.).


 
oxffff ©   (2011-01-30 08:26) [2]


> @!!ex ©   (30.01.11 02:01)  


А ты еще на Delphi программируешь? Зачем?
на gamedev.ru тебе вроде С++ симпатичен.
Может не стоит?


 
KilkennyCat ©   (2011-01-30 08:28) [3]

просветите убогого, что есть хардлинк в данном случае?


 
DVM ©   (2011-01-30 11:04) [4]


> KilkennyCat ©   (30.01.11 08:28) [3]

http://delphimaster.net/view/15-1294238628/


 
Игорь Шевченко ©   (2011-01-30 11:53) [5]


> Если на модуль есть hard link, то он указывает на файл в
> каталоге __history


что в общем-то соответствует дизайну


 
TUser ©   (2011-01-30 15:53) [6]

если не хочется svn - возможно что-то типа

for /R "tokens=*" %%f in ( "file_with_list_of_copying" ) do cp -u from\%%f to\

cp - команда из цигвина

и в обратном направлении также

и запускать по таймеру


 
@!!ex ©   (2011-01-30 18:43) [7]

> [1] RWolf ©   (30.01.11 06:01)

В [4] верно ссылку привели. Два проекта, использующие одни и теже сорсы. Много разных вариантов думал, ссылки - самый простой в реализации.
Действительно все сломается, если, например, у меня слетит винт и надо будет заново все раскручивать. На этот случай веду текстовый файл со список связанных файлов, чтобы в случае поломки знать что и как восстанавливать.


> А ты еще на Delphi программируешь? Зачем?
> на gamedev.ru тебе вроде С++ симпатичен.
> Может не стоит?

Я на дельфе быстро пишу. В разы быстрее чем на С++.
Я часто в своей практике встречаю человеков, которые принципиально пишут на С++, но не знаю его, и делают кучу ошибок. говнокодят... Я не хочу увеличивать их ряды. Я лучше буду хорошим Дельфином, чем плохим/средним Сишником.


> что в общем-то соответствует дизайну

Я понимаю. Но проблемы не отменяет.


> [6] TUser ©   (30.01.11 15:53)

Что это сделает?


 
vuk ©   (2011-01-30 18:59) [8]

А что, держать копию в каждом проекте - это принципиально? Ссылаться в нескольких проектах на один и тот же исходник, находящийся в одном месте - не судьба?


 
@!!ex ©   (2011-01-30 19:00) [9]

> Ссылаться в нескольких проектах на один и тот же исходник,
> находящийся в одном месте - не судьба?

Ну так и нужна ссылка для этого. :)
Чтобы изменение одного файла сказывалось на всех.
Зачем это нужно - я в другой теме писал.

P.S>
Кстати, испольщую символические ссылки. Вроде все ок.


 
vuk ©   (2011-01-30 19:04) [10]

to @!!ex ©   (30.01.11 19:00) [9]:

> Ну так и нужна ссылка для этого. :)
> Чтобы изменение одного файла сказывалось на всех.
> Зачем это нужно - я в другой теме писал.

Я всё это понимаю. У нас тоже используются общие файлы в разных проектах. Но они просто подключаются в проект прямо там, где лежат. Без всяких хардлинков.


 
@!!ex ©   (2011-01-30 19:18) [11]

> [10] vuk ©   (30.01.11 19:04)

Говорю же, в другой теме это описано.
Раз лень туда сходить, я объясню еще раз:
Два набора сорсов, для разных проектов, разных фирм, лежат в разных репозиториях.
Пользовательи проектов не должны иметь доступа к репозиториям друг друга.


 
KilkennyCat ©   (2011-01-30 19:21) [12]

вот поэтому не понимаю все-таки, что-ж это за зверь такой - хардлинк. я в команде не работаю, но по аналогии думаю, что это как мой компонент, использующийся в куче моих проектов, постоянно дорабатывающийся и дорабатывающихся. он один, лежит всегда в одном месте. А поскольку у меня три места, где могу географически находится, сделал подключение к домашнему компу, никакого копирования, никаких хардлинков...


 
KilkennyCat ©   (2011-01-30 19:22) [13]


> @!!ex ©   (30.01.11 19:18) [11]

ну так сделайте общий репозиторий с раздачей прав на папки, кому можно куда заходить.


 
Германн ©   (2011-01-30 19:39) [14]


> ну так сделайте общий репозиторий с раздачей прав на папки,
>  кому можно куда заходить.
>

Дык он вроде так и делает. Но ему зачем-то понадобилось иметь в каждой папке копию одного и того же модуля.


 
@!!ex ©   (2011-01-30 20:35) [15]

> вот поэтому не понимаю все-таки, что-ж это за зверь такой
> - хардлинк.

Это фишка ОС. К программированию имеет мало отношения. Просто инструмент, который подошел для решения этой проблемы.

> [13] KilkennyCat ©   (30.01.11 19:22)
> ну так сделайте общий репозиторий с раздачей прав на папки,
> кому можно куда заходить.

Две разных конторы. Два разных проекта. Принципиально разные. Разные СВН сервера.
Общий репозиторий никак не получится сделать.

Да и не имеют отношения проблемы общих файлов ни к кому кроме меня.
Просто когда я модифицирую класс матрицы в своей мат либе для использования в одном проекте я хочу чтобы во втором проекте эта модификация тоже стала доступна. Пусть сейчас она там и не нужна, но когда станет нужна - я вполне могу забыть, что реализовывал ее в копии этой мат либы для другого проекта и потрачу время на изобретение велосипеда.
А когда файл один и тот же - пожалуйста, все изменения доступны всем проектам.


 
TUser ©   (2011-01-30 20:54) [16]


> Что это сделает?

это надо записать в батник и поставить его в Scheduller

скопирует файлы по списку куда положено, если там версия файла старее

то есть можно сделать, например, два проекта, и раз в час копировать (если обновилось) туда и оттуда

или единый репозиторий, если проектов больше

весьма вероятно, что это - костыли


 
TUser ©   (2011-01-30 20:56) [17]

зы. конкретныепараметры надо глянуть в справке, я так, по памяти

тоже есть такая проблема - одни файлы в нескольких проектах, но я над двумя проектами сразу не работаю, сегодня один, через два месяца будет другой - так руками скопирую, что поправил

если бы работал над двумя проектами с общими файлами одновременно, то пользовался бы svn или чем-то вроде него


 
Styx   (2011-01-30 21:04) [18]


> Две разных конторы. Два разных проекта. Принципиально разные.
>  Разные СВН сервера.
> Общий репозиторий никак не получится сделать.

Если SVN используется, не вижу проблемы - я в предыдущей теме уже писал - svn switch
http://svnbook.red-bean.com/en/1.0/re27.html
Можно сделать для одного файла, папки... чего угодно.


 
Inovet ©   (2011-01-30 22:06) [19]

> [6] TUser ©   (30.01.11 15:53)
> for /R "tokens=*" %%f in ( "file_with_list_of_copying" )
> do cp -u from\%%f to\

В прошлый раз предлагали xcopy, почему-то не подошло. Там есть ключ /d для копирования только изменённых, хоть и зачем он здесь. При таком подходе надо держать эти файлы в отдельном каталоге и копировать из него в каталог проекта перед началом работы и в в него при завершении. Для этого подойдёт и rar.exe, например.


 
TUser ©   (2011-01-30 22:14) [20]


> xcopy

может и так ... тут имхо, вопрос надо ставить вот как: есть задача, можно настроить внешнюю программу под нее (получив кучу обычно дополниельного может и нужного функционала) или свою утилиту примитивную написать за полчаса ... ну и соответственно взвешивать варианты


 
@!!ex ©   (2011-01-31 00:59) [21]

> [18] Styx   (30.01.11 21:04)

Каким макаром switch тут поможет?
Он просто меняет репозиторий с которым СВН работает.
Зачем мне это?


 
Styx   (2011-02-01 15:50) [22]


> Каким макаром switch тут поможет?
> Он просто меняет репозиторий с которым СВН работает.
> Зачем мне это?

Таким, что Вы можете поменять репозиторий для одного файла. И у Вас этот файл будет браться из одного репозитория, а всё остальное - из другого. В остальном всё будет работать, как обычно.


 
@!!ex ©   (2011-02-02 14:48) [23]

> [22] Styx   (01.02.11 15:50)
> Таким, что Вы можете поменять репозиторий для одного файла.
> И у Вас этот файл будет браться из одного репозитория, а
> всё остальное - из другого. В остальном всё будет работать,
> как обычно.

А заливаться он куда будет?
Получат к нему доступ другие программисты проекта?


 
Styx   (2011-02-02 18:26) [24]


> А заливаться он куда будет?
> Получат к нему доступ другие программисты проекта?

Туда же, откуда и взял, естественно.
Данный файл должен лежать только в одном из репозиториев, поэтому, чтобы получить правильную рабочую копию, придётся слегка помучиться... но, imho, меньше, чем с hardlinkами и всякими скриптами.
Я делал так - копировал файл из одной рабочей копии в другую (где его до этого не было), потом добавлял в svn, и, не делая commit, переключал на другой репозитарий - ну а после этого обновлял его оттуда. Потому что сделать switch для несуществующего в рабочей копии файла нельзя.


 
@!!ex ©   (2011-02-03 19:07) [25]

> Данный файл должен лежать только в одном из репозиториев,
> поэтому, чтобы получить правильную рабочую копию, придётся
> слегка помучиться... но, imho, меньше, чем с hardlinkами
> и всякими скриптами.

ну уж не стоит оно того.
линки двумя кликами через эксплорер делаются.


 
Galera   (2011-02-04 19:53) [26]

А что это HARDLINK? Просветите неученого.
Как это делается двумя кликами в Эксплорере?


 
Inovet ©   (2011-02-05 06:03) [27]

> [26] Galera   (04.02.11 19:53)
> А что это HARDLINK?

Жесткая ссыока (hard link)
http://ru.wikipedia.org/wiki/%D0%96%D1%91%D1%81%D1%82%D0%BA%D0%B0%D1%8F_%D1%81%D1%81%D1%8B%D0%BB%D0%BA%D0%B0
ещё есть Символьная ссылка (Symbolic link)
http://ru.wikipedia.org/wiki/%D0%A1%D0%B8%D0%BC%D0%B2%D0%BE%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D1%81%D1%81%D1%8B%D0%BB%D0%BA%D0%B0



Страницы: 1 вся ветка

Форум: "Прочее";
Текущий архив: 2011.05.22;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.52 MB
Время: 0.005 c
2-1297437513
novai
2011-02-11 18:18
2011.05.22
как правильно описать функцию с разными выходами?


15-1296566174
oxffff
2011-02-01 16:16
2011.05.22
Есть интересная задача


2-1297437090
NieL
2011-02-11 18:11
2011.05.22
Out of memory while expanding memory stream


2-1297871090
Gu
2011-02-16 18:44
2011.05.22
Variant 2 String


2-1297426351
cross
2011-02-11 15:12
2011.05.22
процедура с параметром или функция





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский