Pourquoi subversion chown / crée-t-il des fichiers lors de l’enregistrement?

StackOverflow https://stackoverflow.com/questions/168423

  •  03-07-2019
  •  | 
  •  

Question

J'ai un wiki personnel sur lequel je prends des notes. Les pages du wiki se trouvent dans un répertoire de copie de travail Subversion, "pages", et j'ai défini leurs autorisations sur 664, propriété de www-data: www-data. Mon nom d'utilisateur se trouve dans le répertoire "www-data". groupe, afin que je puisse archiver et bricoler les pages manuellement.

Pendant un moment, j'ai eu un problème, car chaque fois que j'effectuais un enregistrement, les fichiers me appartenaient: www-data au lieu de www-data: www-data, et je ne pouvais plus modifier le fichier. les fichiers wiki via mon interface web! J'ai résolu le problème en retournant le bit setgid sur les "pages". répertoire, mais je ne comprends toujours pas pourquoi cela s’est produit en premier lieu:

Chaque fois que je vérifie quelque chose dans Subversion, il semble que svn le supprime et le recrée. Pourquoi? Ce comportement prend-il en charge certaines fonctionnalités que je ne connais pas? Y a-t-il un moyen de le changer?

Merci!

Était-ce utile?

La solution

Définissez le "collant". bit autorisations.

find -type d -exec chgrp www-data {} + 
find -type d -exec chmod g+s {} + 

Ceci encouragera la phase de création de fichier de Google Checkout à hériter des autorisations des répertoires au lieu de basculer vers la personne qui l'a modifié en dernier.

Modifier : dow + s == setgid. Informations laissées ici pour la postérité et les autres lecteurs.

Autres conseils

Je pense que vous l'utilisez mal. Ce que vous pouvez faire, c’est que tout est toujours dans la subversion et que votre copie de travail locale soit séparée du répertoire www sur lequel vous développez.

Il suffit ensuite de mettre à jour automatiquement la copie de travail www (ou à l'exporter si vous ne voulez pas les répertoires .svn dans le répertoire www foldeR) pour l'utilisateur www par un script (peut-être sous la forme d'un hook post-commit ) qui configure ensuite les autorisations en conséquence.

Le flux de travail serait:

  1. modifier les fichiers dans / home / votre-utilisateur / votre-wiki-working-copy /
  2. do svn commit
    • le hook post-commit met à jour les fichiers dans / var / www / (ou où que se trouve le wiki)
  3. goto 1.

De cette manière, vous n'avez pas à vous soucier des autorisations et vous pouvez même faire en sorte que plusieurs personnes travaillent sur le site Web avec tous les avantages du contrôle de version.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top