2013-04-02 32 views
8

Pracuję nad małą aplikacją w PHP i Javie. Ma kilka zdjęć, CSS i JS, które muszą być udostępnione w obu.Dowiązanie symboliczne w repozytorium Subversion?

Nie chcę duplikatów tych plików, JS i CSS muszą być takie same w obu. Tak więc chciałbym, aby kiedy zmieniłem go w jednym miejscu, zmiana była replikowana w drugiej.

W systemie Unix mamy dowiązania symboliczne, dzięki czemu ten sam plik/folder może "być" w wielu miejscach w systemie plików. W Subversion mamy svn copy, ale po jego wykonaniu obie kopie stają się niezależne. Chciałem je zachować razem, commit wykonany w jednym egzemplarzu zostanie zastosowany również w "innym".

Każdy pomysł, jak to zrobić?

+0

Możliwa duplikat [Co się dzieje czy dodaję dowiązanie symboliczne do subversion?] (https://stackoverflow.com/questions/4056092/what-happens-if-i-add-a-symbolic-link-to-subversion) –

Odpowiedz

15

Masz na myśli wpis symlinks w swoim poście, a nie "linki w tle" (edytowałem wpis). Subversion może być dowiązaniem symbolicznym, ale innym sposobem obejścia tego problemu (ponieważ dowiązania symboliczne nie są obecnie obsługiwane przez Subversion w systemie Windows), należy użyć Externals.

Różnica polega na tym, że jeśli używasz Subversion na zewnątrz, będziesz miał dwie kopie pliku w swoim systemie (które wskazują to samo miejsce w repozytorium), podczas gdy dowiązanie symboliczne jest pojedynczym plikiem na serwerze. system plików.

+0

Jeszcze raz dziękuję, będę spójrz na Externals. Minęło kilka lat, nie używam Uniksa, myślę, że shadow to nazwa Maca, symboliczna dla Uniksa i .lnk dla Windows ... czy nie lol! – Hikari

+5

Pliki LNK w systemie Windows to skróty (pliki danych wskazujące na inny plik wraz z kilkoma innymi danymi) - nie są one dowiązaniami symbolicznymi. NTFS (system plików Windows) ma dowiązania symboliczne od wersji Win7 i ma przedtem twarde linki. Wyszukiwarka OS X zawiera * Aliasy *, które są podobne do skrótów Windows w koncepcji, ale różnią się pod względem wykonania. OS X obsługuje również dowiązania symboliczne w systemie plików. Wszystkie mają różne nazwy, ponieważ są różne - nie używaj ich zamiennie, zwłaszcza, że ​​wiesz, że ich nie rozumiesz! – alroc

3

Nie wspomniano, w jaki sposób projekty są układane w programie svn lub w jaki sposób budowane są elementy języka Java. To byłyby dobre szczegóły do ​​dodania.

Chcesz przejrzeć zarządzanie zależnościami, a nie dowiązania symboliczne. Jak wskazuje @alroc, ta funkcja subversion nie będzie działać na niektórych platformach.

Naprawdę nie chcesz svn:externals. Przez prawie cały czas są złym interesem i przez cały czas, jeśli zewnętrzni rozwiązują coś w tym samym repozytorium. Zostało to już całkiem sporo, The accepted answer here jest dobrym miejscem do rozpoczęcia.

Zalecam repozytorium dla aplikacji Java, repo dla php, a następnie prawdopodobnie repo dla wspólnego.

Twój build (java) i wdrażania (php) może następnie rozwiązać odpowiednią wersję wspólnego repos artefaktu (ów) z repozytorium (polecam zajrzeć do nexus lub artifactory)

+0

To kilka pngs, js i css. Buduję kilka stron HTML, które będą używane w PHP i JSP, więc zachowam je wszystkie w jednym projekcie Subversion, każdy w swoim własnym folderze, i nie chcę duplikować tych statycznych plików. – Hikari

Powiązane problemy