uVersion
Français
Télécharger →

Wiki

Envoyer un projet existant

Mettre un projet Unreal déjà présent sur votre disque sous uVersion : initialiser le dossier en place, vérifier les exclusions, puis un checkin depuis l’onglet Pending. Avec les pièges du premier envoi.

Vous avez un projet Unreal sur votre disque et vous voulez le mettre sous uVersion. Cette page couvre ce cas précis : vos fichiers ne bougent pas, le dossier est relié au serveur sur place, puis envoyé.

Si vous partez au contraire d’un dépôt vide déjà créé sur le serveur, c’est un clone qu’il vous faut, pas cette page.

Avant de commencer

Fermez l’éditeur Unreal À la fin d’un envoi, les fichiers envoyés repassent en lecture seule sur le disque. Or le plugin uVersion, à l’ouverture de l’éditeur, réserve automatiquement tout asset resté modifiable : si l’éditeur est ouvert pendant l’opération, il reprend aussitôt des verrous sur ce que vous venez d’envoyer. Comme les verrous ne s’expirent jamais d’eux-mêmes, vous les garderiez sans le savoir.

Vérifiez aussi que le dossier que vous allez déclarer est bien la racine voulue du dépôt. Le fichier .uproject doit se trouver au maximum trois niveaux sous cette racine, sinon le client ne reconnaîtra pas le projet comme un projet Unreal et le panneau Unreal restera invisible.

Initialiser le dossier

1. Ouvrir la fenêtre Open Repository

Dans la barre latérale, ouvrez Workspace, puis cliquez Open Repository (ou le « + » de la barre d’onglets). La fenêtre qui s’ouvre sert d’abord à cloner un dépôt existant : ce n’est pas ce que vous voulez ici. Descendez tout en bas, sous la liste des dépôts et sous Open Local Repository..., et cliquez New Repository from a Project Folder...

Vous ne voyez pas ce bouton ? Il n’apparaît que pour le rôle admin, parce qu’il crée un dépôt sur le serveur. Voir Créer un dépôt.
Le bas de la fenetre Open Repository : la case Download files after clone, le bouton Open Local Repository, et en dessous le bouton New Repository from a Project Folder.

2. Choisir la racine du projet

Un sélecteur de dossier s’ouvre, intitulé Select your project folder to create a new repository. Choisissez la racine de votre projet, celle qui contient le .uproject ou le dossier qui le contient. Rien n’est copié ni déplacé : ce dossier restera là où il est.

3. Nommer le dépôt et créer

Le formulaire s’affiche dans la fenêtre elle-même, à l’endroit du bouton que vous venez de cliquer, pas dans une nouvelle boîte de dialogue. Il rappelle le chemin retenu et propose un champ Repository name pré-rempli avec le nom du dossier. Ajustez-le si besoin, puis cliquez Create & Open. Le bouton reste inactif tant que le nom est vide, et ce nom doit être unique sur tout le serveur.

Le formulaire de creation en place, dans la fenetre Open Repository : le chemin du dossier choisi sur une ligne, le champ Repository name pre-rempli avec le nom du dossier, les boutons Create and Open et Cancel.

Le client fait alors quatre choses, et rien d’autre :

  • il crée le dépôt sur le serveur ;
  • il écrit un dossier .uversion/ dans votre projet, qui mémorise le dépôt, l’adresse du serveur et le compte propriétaire du workspace ;
  • il écrit un fichier .uversionignore, seulement s’il n’en existe pas déjà un ;
  • il ne télécharge rien et ne touche à aucun de vos fichiers.
Ce dossier devient le vôtre Le compte qui initialise le dossier en devient le propriétaire, et c’est sous cette identité que la ligne de commande agira ensuite dans ce dossier. Un collègue ne doit pas copier votre dossier : il doit cloner le dépôt de son côté, sans quoi il obtiendra le message This workspace belongs to ....

Vérifier les exclusions

C’est le bon moment, et c’est bien plus simple maintenant qu’après. Ouvrez le fichier .uversionignore à la racine : il liste ce qui ne sera jamais envoyé. Le modèle posé par défaut écarte déjà ce qu’un projet Unreal régénère tout seul, notamment Binaries/, Build/, DerivedDataCache/, Intermediate/, Saved/ et Packages/, ainsi que les fichiers de projet des environnements de développement.

Deux règles ne sont pas modifiables, et il vaut mieux les connaître :

  • Plugins/uVersion est toujours exclu. Le plugin Unreal n’est jamais versionné : chaque poste installe la version qui correspond à SON moteur, via le client desktop. Le voir absent du dépôt est normal.
  • Un chemin contenant un dossier nommé exactement ThirdParty n’est jamais exclu, quelle que soit la règle que vous écrivez. Vos bibliothèques tierces partent donc toujours.

Packages/ étant exclu, un build empaqueté ne partira jamais dans le dépôt : il se distribue par la fonction de publication de builds, pas par le versionnement.

Envoyer

4. Constater l’état dans l’onglet Files

Tout votre projet y apparaît avec le statut untracked : présent chez vous, pas encore sur le serveur. C’est l’état normal d’un dossier qui vient d’être initialisé. La pastille de comptage au-dessus de l’arbre résume la même chose (N local only), la colonne Rev indique v0 partout, et l’onglet Pending porte déjà un badge avec le même nombre : le client a repéré vos fichiers tout seul, il n’y a rien à « ajouter » à la main.

L onglet Files juste apres l initialisation : la pastille N local only au-dessus de l arbre, le statut untracked sur chaque ligne, la colonne Rev a v0, et le badge du meme nombre sur l onglet Pending.

5. Ouvrir l’onglet Pending

Tous vos fichiers y sont déjà, marqués add, rangés dans la changelist Default. La colonne de gauche montre l’arborescence de ce qui partira, le panneau de droite la liste à plat avec un Diff et un Remove par ligne. Ne retirez ici que ce que vous ne voulez jamais versionner : la bonne réponse à « ce dossier n’a rien à faire là » est une règle dans .uversionignore, pas un Remove ligne à ligne.

L onglet Pending au premier envoi : l arborescence des fichiers a gauche, la changelist Default a droite avec chaque fichier marque add, les boutons Diff et Remove par ligne, la zone Describe your changes et le bouton Checkin all.

6. Décrire, puis Checkin all

Écrivez un message dans Describe your changes... : il est obligatoire, le bouton Checkin all reste inactif tant que la zone est vide. « Premier envoi du projet » suffit très bien. Puis cliquez Checkin all (N).

Le panneau de la changelist Default : la zone Describe your changes remplie avec un message de premier envoi, le bouton Checkin all actif avec le nombre de fichiers.
L’envoi réserve pour vous Le checkin pose lui-même les verrous des fichiers qu’il envoie, puis les libère une fois la révision validée. Sur un premier envoi c’est sans conséquence, vous êtes seul sur ces fichiers. Sur un dépôt déjà partagé, un fichier réservé par quelqu’un d’autre fait échouer l’envoi : voir les pièges plus bas.

L’envoi se déroule ensuite tout seul, en plusieurs phases affichées dans la barre d’en-tête : découpage, vérification de ce que le serveur possède déjà, transfert, puis validation. Vous pouvez changer d’onglet pendant ce temps, la progression suit. Un transfert interrompu reprend là où il en était plutôt que de tout recommencer. À la fin, les fichiers envoyés passent en lecture seule : c’est le signe qu’ils sont sur le serveur et qu’il faudra les réserver pour les modifier.

Pièges du premier envoi

Je cherche le bouton d’envoi dans Files

Il n’y est pas. L’onglet Files montre l’état et sert aux actions ponctuelles ; l’envoi se fait depuis l’onglet Pending, où tout fichier non suivi ou modifié apparaît de lui-même. Si Pending affiche un badge, c’est qu’il y a quelque chose à envoyer.

« Failed to acquire locks for N file(s) »

Un ou plusieurs fichiers sont déjà réservés par quelqu’un d’autre, et l’envoi entier est annulé, pas seulement les fichiers concernés. Regardez l’onglet des réservations en attente pour savoir qui les détient, et demandez-lui de les libérer.

Un fichier que j’ai sélectionné est parti en suppression

Un chemin envoyé mais absent du disque au moment du transfert est interprété comme une suppression. Cela arrive si vous déplacez ou renommez des fichiers entre la sélection et l’envoi. Évitez de travailler dans le dossier pendant l’opération.

« This folder is already a uVersion repository »

Le dossier contient déjà un .uversion/. Utilisez Open Local Repository... au lieu de le recréer.

Le dossier est refusé

Le client refuse délibérément certains emplacements : la racine d’un disque, un dossier système, un dossier de démarrage automatique, ou un chemin relatif. Choisissez un dossier de travail ordinaire.

Et ensuite