Я тоже столкнулся с этим.Я собираюсь предположить, что внешний вид ваших проектов при развертывании заключается в том, что классы в отдельном проекте копируются в какой-то каталог где-то в основном коде.
Предположим, что отдельный проект содержит только один класс,Foo
, для простоты.Предположим также, что Foo
присутствует в развернутом «основном коде» в каталоге и файле /maincode/external/lib/Foo.php
.Наконец, давайте предположим, что /maincode/external/lib
существует в качестве каталога в вашем управляемом версией проекте "основной код", и что он содержит только файл-заполнитель и в противном случае пуст.
Во-первых, используйте один измногие методы, которые предоставляет git, игнорируют содержимое каталога /maincode/external/lib
в каталоге проекта NetBeans для этого проекта.Мы собираемся сделать так, чтобы он выглядел так, как будто он содержит некоторые вещи, и мы не хотим, чтобы этот каталог, который в противном случае должен быть пустым, мог вносить изменения, зафиксированные в нем по ошибке.
Теперь, когда онигнорировать, сделать символическую ссылку в этом каталоге на Foo.php
в другом проекте.В Unix вам нужна команда ln
, например
ln -s /path/to/project/files/MyFooProject/Foo.php Foo.php
В Windows вы ищете команду mklink
, например
mklink Foo.php C:\path\to\project\files\MyFooProject\Foo.php
Дайте NetBeans одну или две минутыподумать об этом (или вызвать проблему, вызвав команду «Сканировать на наличие внешних изменений» в меню «Источник»), и вы должны увидеть Foo.php
в проекте «основной код», где вы создали символическую ссылку.
Теперь, когда вы отслеживаете выполнение и вам нужно перейти в Foo.php, чтобы увидеть, что делает класс Foo, вы перейдете к тому, что находится в проекте "maincode".Так как это символическая ссылка на файл в проекте «MyFooProject», все ваши изменения будут отражены там.
Просто обязательно отсоедините все (обычная команда rm
в Unixи обычная команда del
в Windows, но в каталоге, где находится символическая ссылка!), когда вы закончите.Кроме того, если в каталоге есть вещи, которые вы проигнорировали, и которые вы хотите иметь возможность зафиксировать, отмените игнорирование этого каталога.
Если вам нужно сделать это для более чем одного файла, тогда вы можетесвязать целые каталоги.Если вместо вышеперечисленного вы обычно копируете содержимое «MyFooProject» в каталог /maincode/external/lib/myfoo/
в развернутой версии, то просто свяжите соответствующий каталог, как вы делали файл выше.В Windows, например,
cd \path\to\project\files\maincode\external\lib
mklink /D myfoo C:\path\to\project\files\MyFooProject
Это будет символическая ссылка на каталог.Прошло много времени с тех пор, как я делал что-то подобное в Unix, поэтому я не помню точную команду для той же самой вещи в этой ОС (или если символические ссылки на каталоги даже возможны в Unix).После того, как каталог связан, вы должны увидеть новый каталог, а также все файлы и подкаталоги, которые будут отображаться в вашем проекте «maincode» NetBeans, готовые для вашего удовольствия от отслеживания выполнения.- игнорируйте все, как только вы закончите, чтобы не проснуться на следующее утро, чтобы оказаться в замешательстве.:) Чтобы отменить связь каталога в Windows ...
cd \path\to\project\files\maincode\external\lib
rmdir myfoo
и он должен отменить связь.(Будьте осторожны, когда вы удаляете и указываете, что делаете это с символической ссылкой!)