2013-04-02 8 views
8

Je développe une petite application à la fois PHP et Java. Il a quelques photos, CSS et JS, qui doivent être partagées dans les deux.Lien symbolique dans le dépôt Subversion?

Je ne veux pas que ces fichiers soient dupliqués, JS et CSS doivent être identiques dans les deux. Donc, j'aimerais que, lorsque je le change à un endroit, le changement soit reproduit dans l'autre. Dans Unix, nous avons des liens symboliques, de sorte que le même fichier/dossier peut "être" à plusieurs endroits dans le système de fichiers. Dans Subversion nous avons svn copy, mais une fois qu'il est exécuté, les deux copies deviennent indépendantes. Je voulais les garder ensemble, un engagement fait en une copie sera appliqué dans "l'autre" aussi.

Une idée de comment faire cela?

+0

double possible de [Qu'est-ce qui se passe si j'ajoute un lien symbolique à subversion?] (https://stackoverflow.com/questions/4056092/what-happens-if-i-add-a-symbolic-link-to-subversion) –

Répondre

15

Vous faites référence à symlinks dans votre message, pas "liens d'ombre" (j'ai édité le poste). Subversion peut créer des liens symboliques, mais une autre façon de s'y prendre (car les liens symboliques ne sont pas supportés par Subversion sous Windows pour l'instant) est d'utiliser Externals. La différence est que si vous utilisez une version externe de Subversion, vous aurez réellement deux copies du fichier sur votre système (qui pointent vers le même endroit dans le référentiel), alors que le lien symbolique est un seul fichier sur le système. système de fichiers.

+0

Merci encore, je vais Jetez un coup d'oeil sur les extérieurs. Cela fait quelques années que je n'utilise pas Unix, je pense que l'ombre est le nom de Mac, symbolique pour Unix et .lnk pour Windows ... ou pas lol! – Hikari

+5

Les fichiers LNK sous Windows sont des raccourcis (fichiers de données pointant vers un autre fichier, ainsi que d'autres données) - ce ne sont pas des liens symboliques. NTFS (le système de fichiers de Windows) a des liens symboliques à partir de Win7, et avait des liens durs avant cela. Le Finder d'OS X a des * Alias ​​*, qui sont similaires aux raccourcis Windows dans le concept, mais différent dans l'exécution. OS X prend également en charge les liens symboliques sur le système de fichiers. Ils ont tous des noms différents parce qu'ils sont différents - ne les utilisez pas de façon interchangeable, d'autant plus que vous savez que vous ne les comprenez pas! – alroc

3

Vous n'avez pas mentionné comment les projets sont présentés dans svn, ou comment votre projet Java est en cours de construction. Ce seraient de bons détails à ajouter.

Vous voulez examiner la gestion des dépendances - pas les liens symboliques. Comme le souligne @alroc, cette fonctionnalité de subversion ne fonctionnera pas sur certaines plates-formes. Vous ne voulez pas vraiment svn:externals. Ils sont une mauvaise affaire presque tout le temps, et tout le temps si l'externe se résout à quelque chose dans le même repo. Cela a été couvert un peu, The accepted answer here est un bon endroit pour commencer.

Je vous recommande d'avoir un repo pour l'application java, un repo pour le truc php et peut-être un repo pour le commun.

Votre build (java) et déployer (php) peut alors résoudre la version appropriée de l'artefact de prises en pension commun (s) à partir d'un référentiel (je vous recommande de regarder en lien ou Artifactory)

+0

C'est un pngs, un js et un css. Je construis quelques pages HTML qui seront utilisées dans PHP et JSP, donc je les garderai toutes dans un seul projet Subversion, chacune dans son propre dossier, et je ne veux pas dupliquer ces fichiers statiques. – Hikari