Nous faisons équipe avec des non-programmeurs (écrivains) qui ont besoin de contribuer à l'un de nos projets.
Maintenant, ils n'aiment pas l'idée d'utiliser Git (ou quoi que ce soit d'autre) pour la version contrôlant leur travail. Je pense que c'est parce qu'ils ne trouvent tout simplement pas la peine de se familiariser avec les concepts tordus du contrôle de version. (Lorsque je les ai initiés à la création de branches et à la fusion, ils avaient l'air de les offenser.)
Maintenant, nous ne sommes pas en position de les éduquer ou de les convaincre de l'utiliser. Nous essayons simplement de trouver des alternatives pour que tout leur travail soit versionné (c'est ce dont nous avons besoin) - et ils ont un flux de travail facile et se concentrent sur ce qu'ils font.
J'ai eu quelques idées ...
- dites-leur de sauvegarder leur travail dans un fichier séparé chaque fois qu'ils apportent des modifications non triviales, puis utilisez un diff de notre côté pour suivre uniquement les modifications.
- écrivez un programme (en Python) qui implémente les "jalons" dans CSSEdit d'une manière ou d'une autre.
À propos du projet:
C'est un système de traitement de langage naturel (écrit en C + Python). Nous avons engagé des rédacteurs pour préparer des entrées pour le système dans différentes langues. Et au fur et à mesure que nous développons le logiciel, nous aurions besoin de ces rédacteurs pour modifier leurs entrées (articles). Parfois, les modifications sont très petites (un mot ou deux) et parfois très grandes.
La raison pour laquelle nous avons besoin de contrôler la version de ces changements est que chaque changement, petit ou grand, dans l'entrée peut potentiellement modifier considérablement la sortie du système.
Réponses:
Ceci est probablement dû au fait que la création de branches et la fusion sont des concepts avancés, et infiniment moins utiles que de simplement suivre les modifications.
Alors pourquoi ne pas expliquer simplement "commettre" (enregistrer) et "mettre à jour"? Deux concepts très simples . Je suis sûr que vous pouvez l'expliquer en moins de 10 minutes.
Si vous voulez vraiment utiliser des branches distinctes et ce genre de choses, vous pouvez le faire vous-même sans les impliquer.
la source
Une approche peu orthodoxe consisterait simplement à utiliser Dropbox . Demandez aux auteurs de sauvegarder les fichiers dans le répertoire de la boîte de dépôt et obtenez le contrôle de version et la sauvegarde gratuitement. De plus, il n’existe pratiquement aucune courbe d’apprentissage pour les auteurs.
Pour git, on dirait qu’en fin de compte, vous devrez quand même fournir aux auteurs les versions correctes des branches. Il suffit donc de placer le dépôt git dans la liste déroulante et de gérer la création de branches et la fusion pour les auteurs.
la source
En vérité, la réponse se trouve dans votre montage: "Nous avons embauché des écrivains". Parfois, vous devez simplement avoir l’esprit sanglant ... ils veulent votre argent, ils doivent faire ce que vous voulez, à condition que ce que vous voulez ne soit pas déraisonnable.
L'argument que vous avancez est l'argument que vous avez déjà avancé - nous devons être capables de faire X, Y et Z pour que le produit fonctionne, et pour ce faire, nous avons besoin de vous pour le faire. Nous serons aussi solidaires que possible, mais pour que cela fonctionne (et donc que cela continue comme source de revenus pour vous, l'auteur), cela doit arriver.
Je suis plutôt d’accord pour dire qu’une solution appropriée basée sur un wiki semblerait être un bon compromis - mais le défi consiste à trouver un compromis entre leur flux de travail et vos exigences.
Je vais répéter le point clé - pour que votre projet soit un succès que vous avez besoin des articles à versionné donc ceux qui travaillent sur les articles doivent jouer par un ensemble de règles convenues, si cela ne vous arrive pas vous obtenir brûlés et, par extension, les écrivains le seront aussi.
la source
J'ai déjà dû faire face à une situation similaire comme celle-ci. En fin de compte, nous avons simplement désigné un développeur (moi) comme point de contact du contrôle de version pour le tiers.
La tierce partie m'envoyait chaque jour un fichier zip contenant leurs fichiers de projet et je les archivais. J'ai configuré un espace de travail de projet distinct et un compte svn pour eux et je décompressais les fichiers dans cet espace de travail en écrasant ce qui se trouvait là, puis en effectuant l'archivage sous ce compte.
Ce n’était pas très amusant de faire tous les jours, mais il est parfois plus important de simplement faire le travail.
L'un des avantages était que cela m'aidait à revoir leur travail pour m'assurer qu'ils ne vérifiaient pas le code défectueux et les données qui briseraient la construction.
la source
SparkleShare est un clone dropbox basé sur git, je pense que cela répond à vos besoins.
Mise à jour (novembre 2015) : le projet semble être abandonné (dernière version d'avril 2014).
la source
Si vous pouvez fournir un espace de travail préparé avec une utilisation transparente de VCS, ils utiliseront VCS. Ne pas apprendre aux non-programmeurs à utiliser VCS à la manière d'un programmeur
Il suffit de rechercher un éditeur avec prise en charge intégrée de VCS, de le configurer et d’afficher des étapes simples supplémentaires dans ses travaux.
Un exemple - Editplus connaît Subversion et peut effectuer des opérations SVN de base dans la fenêtre de l'éditeur. Le dernier Editplus peut même utiliser TortoiseGIT pour l'intégration Git
Edit : solution de remplacement: EasySVN , qui, correctement configuré, surveille la copie de travail et effectue la validation automatique, ce qui permet d' utiliser n'importe quel outil de création pour l'utilisateur final et les formats de documents
la source
Qu'en est-il de la création d'un WebDAV ?
Il gérera automatiquement l'historique des versions en ligne droite pour eux. Tout ce qu'ils ont à faire est de se connecter au serveur comme s'il s'agissait d'un lecteur réseau et chaque sauvegarde constituerait un commit.
la source
Google Docs
Google Docs peut faire ce que vous voulez.
File > See Revision History
vous permettra de suivre les changements.Vous avez également le problème de la manipulation des fichiers, pris en charge gratuitement; Il suffit de partager le document avec tout le monde.
Enfin, il est facile à utiliser. les rédacteurs n'ont même pas besoin de savoir qu'il existe des versions.
la source
OS agnostique
Ecrivez un programme Python sur lequel vous pouvez glisser et déposer un fichier, ce programme peut alors faire le
git add
etgit commit
et ce qui ne l'est pas et ils n'ont jamais à s'en occuper.ou
Utilisez un système de fichiers basé sur WebDav que vous pouvez monter sur leur ordinateur et que le serveur
git
gère de manière transparente.OSX / Linux
Ecrivez un plugin FUSE basé sur Python qui prend les fichiers et les engage dans git. Ensuite, ils peuvent simplement ouvrir et enregistrer de manière transparente à partir du système de fichiers monté. Il existe des ressources FUSE pour Windows , mais elles ne valent probablement pas la peine d’être trompées.
les fenêtres
Vous pourriez peut-être écrire du code pour utiliser les pilotes de filtres FileSystem afin de procéder de manière transparente
git
.la source
Ah, les joies des non-codeurs déconnent. Je suggère de mettre en place un environnement git / mercurial pour eux. Dites-leur de tout enregistrer dans un format compatible avec le référentiel. Avec tortoisegit ou tortoisehg , ils n’ont pas besoin de savoir comment fonctionne le repo. Ils vérifient simplement s'ils ont un point d'exclamation dans leur répertoire de projet, font un clic droit sur le fichier incriminé et cliquez sur commit. Tapez un résumé des modifications (ce sont des écrivains, n'est-ce pas?) Et vous avez terminé!
Une étape supplémentaire dans le flux de travail pour eux, mais rien sur la fusion / branchement / cool. L'environnement prédéfini est déjà configuré pour figurer dans la branche writer, de sorte qu'ils ne voient pas le code. Demandez à un script de les synchroniser automatiquement tous les jours. Plus tard, une fois qu'ils sont habitués à commettre, vous pouvez leur montrer des fonctionnalités supplémentaires. La possibilité de voir ce qui a changé quand est si utile qu'ils ne pourront plus s'en passer, une fois que vous l'aurez inséré dans leur flux de travail.
la source
Qu'en est-il de Share Point? Je sais que ce n'est pas populaire dans les mondes du développement, mais si vos auteurs utilisent Windows comme système d'exploitation, cela fonctionnera bien et ils ne sauront pas vraiment qu'ils utilisent le contrôle de version (un gros plus pour mon travail).
Cette solution les empêche également de faire face à tout ce qui pourrait leur faire peur, car il semble qu’ils soient frileux de choses nouvelles.
la source
Pourriez-vous configurer un outil qui surveille le système de fichiers dans lequel les rédacteurs enregistrent leurs fichiers et le faire procéder à une validation automatique à chaque fois qu'il enregistre?
Si vous le mettez sur un partage réseau, vous pouvez effectuer toute la configuration sans les impliquer du tout. mais chaque fois qu'ils fourniraient une version mise à jour à votre équipe, celle-ci serait ajoutée à git pour vous.
la source
Avez-vous regardé Plastic SCM. Ils essaient de le rendre plus simple à utiliser
Si vous souhaitez uniquement des sauvegardes versionnées, vous pouvez utiliser Dropbox ou configurer le service de sauvegarde Windows. Ou vous pouvez installer Crashplan ou un autre produit similaire.
la source
Pour Mercurial DVCS, il existe une interface utilisateur appelée EasyMercurial , dont l'objectif déclaré est explicitement de fournir une vue simple des opérations de contrôle de version de base.
Je recommanderais d'essayer.
la source
J'ai souvent dû travailler avec des non-programmeurs (principalement des graphistes, et si vos rédacteurs ont aussi peu d'indications sur la gestion des fichiers de travail en tant qu'artistes, alors vous êtes pris pour ... h'mmm ... amusement .. .) Il y a trois approches possibles:
Personnellement, je pense que l'option 3 est la voie à suivre. Cela signifie douleur et irritation pour quiconque doit prendre les envois de fichiers et les faire enregistrer, mais beaucoup moins que toute autre option.
Je dirais aussi que les non-programmeurs livrent des fichiers avec n'importe quel ancien nom de fichier auquel vous pouvez penser. Les conventions de nommage leur sont étrangement étrangères. Ils vous donneront un fichier appelé "Image" ou quelque chose, puis quand vous leur direz ce qui ne va pas, vous obtiendrez un fichier appelé "Picture_Final", qui ne corrigera qu'environ 3 des fautes. Lorsque vous le signalez, vous obtenez un autre fichier, appelé "Picture_NewFinal", puis "Picture_NewFinal2" (si vous avez de la chance), bien qu'il soit possible à ce stade qu'ils abandonnent toute idée de développement historique et qu'ils l'appellent "Icône de clé chose".
Encore une fois, vous pouvez essayer d'appliquer une convention de dénomination, ce qui signifie leur dire à l'avance comment chaque fichier doit être appelé, ou vous pouvez passer des heures à déchiffrer et renommer ce qu'ils vous envoient. Ici, je dirais que vous voulez de toute façon un tableur pour votre santé mentale, essayez donc de le leur faire suivre: ne soyez pas surpris quand ils ne le font pas.
J'espère que ça aide - amusez-vous!
la source
S'il y a une chance que deux d'entre eux doivent travailler sur la même cible à la fois ET si vous pouvez gérer tout leur travail dans des fichiers texte, je vais essayer de partager Google Docs.
Il a une capacité de collaboration / éditeur multiple impressionnante - de loin le meilleur que j'ai jamais vu. Ils sont également intégralement versionnés et peuvent être exportés sous forme de fichiers texte.
Mais ce sont deux très gros si.
la source
Laissez-les travailler dans un dossier en sauvegardant les fichiers comme d'habitude.
Une fois par jour (ou par semaine, etc.), copiez le contenu de ce dossier dans backup_dd_mm_yyyy. Le code source de la plupart des systèmes occupe une quantité d'espace minime compte tenu de l'espace disponible de nos jours.
La copie peut être faite par vous, eux-mêmes, un tiers, un outil ou un script.
Cela limite les pertes à un jour, donne une histoire, est transparent pour eux.
Pas parfait pour les deux parties mais une réponse qui cherche à trouver un terrain d'entente.
la source