Noticed how apparently simple things tend to turn into giant mess if left unattended ? That seems to be the case with game art as well. Revision, recoveries, distributed development and project shifts have turned my 4 sprite files into a nightmare of name-collisioning fellows. Giiiit tooo the Rescuuue!
Petit rangement d'été grâce à Cyril qui maitrise mieux git que moi. A partir de tous les répertoires DATA (et des cartes-mémoire de mes DS), je voudrais avoir un endroit unique où il fait bon vivre pour les sprites et autres maps, où les duplicatas ne seraient plus un problème, pas plus que les redondances dans les noms.
Première chose: activer la syncrhonisation "git" sur un des répertoires 'DATA' d'une de mes machines.
cd DATA
git init
git add *.spr *.SPR
git commit -a
Bien. Maintenant, créer l'espace unique ... le paradis des sprites.
mkdir ../DATA.git ; cd ../DATA.git
git --bare init
cd - # goes back to DATA
git remote add origin /path/to/DATA.git/
git push origin master
Il sera désormais dénommé "master", hébergé sur la machine host. Depuis mon portable, je pourrai donc faire un "clone" de mon jeu de données pour y ajouter les fichiers détenus localement:
git clone host:/path/to/DATA.git/
cp ~/DS/*.spr
git add *.spr
git commit -a
Une fois le "git local" préparé, je synchronise la copie-maître avec
git push
, tout simplement. Le répertoire DATA d'origine peut aussi accepter les nouveaux-venus via git pull
à condition d'avoir copié la section [branch "master"]
du fichier .git/configReste à faire le ménage et à structurer ça par projet plutôt que par provenance ... sur une branche parallèle, sans aucun doute.
(à relire: https://www.jesuisundev.com/comprendre-git-en-7-minutes/ )
git log --pretty=oneline --graph --decorate --all --abbrev-commit | tree view of "where am I" |
git branch -a | show known branches |
3 comments:
one http://techblog.zabuchy.net/2011/transfer-only-selected-file-types-with-rsync/ to find them and in the repository RsYNc them
rsync -av --include='*/' --include='*.png' --exclude='*' source/ destination/ --prune-empty-dirs
do not forget '*/' or it won't recurse into directories
okay ... I have git fetched the new stuff a colleague had pushed
then I git checkout remotes/origin/his-branch -b my-branch to get it without the "detached head state"
now he makes new changes and I git fetch again.
trying to redo the checkout tells me the branch is already there...
time to read more StackOverflow, I guess ...
Post a Comment