Bakgrund:
Med åren så har det blivit lite spretigt med alla projekt som har legat utspridda på flera datorer i lite olika färdighetsgrad mm. Lite bättre blev det när jag samlade ihop projekten och la dem på en Synology NAS som jag införskaffade för drygt ett år sedan.
Men eftersom många projekt innehåller programvara som ändras ganska ofta så behövde jag ett riktigt versionshanteringssystem.
NASen jag har är Linux 2.6 ARM baserad. Jag har testat att installera Subversion (SVN) för konfigurationshantering, men jag fick det aldrig att bli bra och jag har inte fattat hur det funkar helt under skalet.
Eftersom jag har ganska mycket erfarenhet av att köra Perforce blev jag glad när jag såg att det fanns en kompilerad version av servern för just Linux 2.6 ARM. Perforce kostar normalt pengar, men är gratis för upp till 20 användare och 20 workspaces (läs datorer), så det är ju lungt.
Klient-delen finns för windows och linux och har stöd för direkt integration i explorer, visual studio, office etc. eller via deras visual client eller command line interface.
Jag tänkte inte gå igenom i detalj utan mer schematiskt hur jag gjort och om någon annan är intresserad att göra samma sak hjälper jag gärna till eller förklarar mer utförligt.
1 ) skapade en extra användare på nas dedikerad för hantera server och server rättigheter.
2 ) skapade fil-root där versionshanterad information och databasinfo lagras av servern.
3 ) Sätta upp miljövariabler för att peka ut platser för lagra versionshanterade filer, samt loggar.
4 ) skapade krypteringsnycker eftersom jag ville köra ssl. Inte för att mina hobbyprojekt är så intressanta att sno, men jag föredrar att köra med någon form av kryptering istället för klartext.
5 ) starta servern
6 ) intallera visual client på windowsmaskinen.
7 ) peka ut ip och port for versionservern.
8 ) checka in första filen
9 ) klart!
TODO:
* Att fixa så att perforce server programmet automatiskt återstartar om det blir strömavbrott. Ska väl bara in och grotta i någon init.d eller något sådant.
* Fixa automatisk backup till mina föräldrars NAS. Även om man oftast har en kopia lokalt så hjälper det ju inte mot brand.
* Städa upp i mina projekt innan jag checkar in dem. Det är det svåraste.
Man vill ju att gemensamma delar ska ligga på ett visst sätt så att man får hög återanvändningsgrad. Kanske någon har lite tips hur man ordnar multipla projekt med mjukvara både för PC och microkontrollrar, kretskort och annan elektronik. mekanik, underlag för fräsning och svarvning etc?
Man skulle kanske ha en standardiserad mappstruktur som man lägger upp alla nya projekt efter så att man får hög igenkänningsfaktor. Blir förhoppningsvis mindre slöseri med letande efter olika filer etc och mer fokus på själva skapandeprocessen.
Har någon tips om best practice kring detta så vore det guld värt!
