Synka kod-projekt mellan datorer?

Trädvy Permalänk
Medlem
Registrerad
Jun 2012

Synka kod-projekt mellan datorer?

Tjena!

Jag sitter i skrivande stund och försöker organisera upp alla mina programmerings projekt inför min sista termin på gymnasiet. Men då jag kommer på börja 2 nya kurser utöver dem jag redan läser så känner jag att det är dags att fixa något sätt att flyta all min kod mellan datorerna jag arbetar på. Då jag använder en Macbook air när jag är i skolan men när jag väl är hemma vill jag ha möjligheten att använda min vanliga setup. Problemet är att det blir en väldigt massa flyttande av filerna när jag byter dator, speciellt nu när jag håller på med java, php, javascript, html, css och kanske c# till gymnasiearbetet. Och flytta den mängden projekt manuellt varje gång jag vill jobba på den andra datorn är väldigt opraktiskt.

Jag känner att jag inte kan vara den ända som har hamnat i sitsen att man vill koda på flera datorer "samtidigt" men slippa att flytta all kod mellan datorerna med hjälp av tex usb diskar. Om det gör någon skillnad på lösningar utvecklar jag i primärt i Atom och Eclipse men visual studio kan även bli relevant i framtiden pga gymnasiearbete.

Jag och 2st kompisar planerar även att utveckla ett litet spel inom snar framtid, finns det någon lösning för så att vi kan se varandras kod i "realtime" när vi sitter och jobbar med det även fast vi inte sitter på samma plats?

Mvh Matsson!

Trädvy Permalänk
Medlem
Registrerad
Dec 2008

För ditt personliga bruk så hade jag synkat dem med dropbox. Men när man är flera och det är större projekt använder man versionshanteringssystem till exempel git. Man får då versioner samt koll på vilken som gjort vilken rad kod.

Trädvy Permalänk
Medlem
Plats
Lund
Registrerad
Okt 2011
Skrivet av Matsson:

Tjena!

Jag sitter i skrivande stund och försöker organisera upp alla mina programmerings projekt inför min sista termin på gymnasiet. Men då jag kommer på börja 2 nya kurser utöver dem jag redan läser så känner jag att det är dags att fixa något sätt att flyta all min kod mellan datorerna jag arbetar på. Då jag använder en Macbook air när jag är i skolan men när jag väl är hemma vill jag ha möjligheten att använda min vanliga setup. Problemet är att det blir en väldigt massa flyttande av filerna när jag byter dator, speciellt nu när jag håller på med java, php, javascript, html, css och kanske c# till gymnasiearbetet. Och flytta den mängden projekt manuellt varje gång jag vill jobba på den andra datorn är väldigt opraktiskt.

Jag känner att jag inte kan vara den ända som har hamnat i sitsen att man vill koda på flera datorer "samtidigt" men slippa att flytta all kod mellan datorerna med hjälp av tex usb diskar. Om det gör någon skillnad på lösningar utvecklar jag i primärt i Atom och Eclipse men visual studio kan även bli relevant i framtiden pga gymnasiearbete.

Jag och 2st kompisar planerar även att utveckla ett litet spel inom snar framtid, finns det någon lösning för så att vi kan se varandras kod i "realtime" när vi sitter och jobbar med det även fast vi inte sitter på samma plats?

Mvh Matsson!

Ett versionshanteringssystem, t.ex. cvs, svn eller git kanske vore något? Om du har tillgång till någon form av server du kan köra det på.

Corsair Vengeance LPX 2x8GB DDR4 2666MHz CL16 | Intel Core i7 6700 3,4 GHz 8MB | MSI Z170A KRAIT GAMING | Corsair Force Series 3 120 GB | Seagate SSHD Desktop 2 TB 7200 RPM 3,5" | Creative Sound Blaster Z PCIe | Western Digital 500 GB | Samsung Writemaster | Corsair TX750 V2 750 W | EVGA GeForce GTX 970 4GB SSC ACX 2.0+| Fractal Design Define R5 (Svart)

Trädvy Permalänk
Moderator
Registrerad
Aug 2007
Skrivet av Matsson:

Tjena!

Jag sitter i skrivande stund och försöker organisera upp alla mina programmerings projekt inför min sista termin på gymnasiet. Men då jag kommer på börja 2 nya kurser utöver dem jag redan läser så känner jag att det är dags att fixa något sätt att flyta all min kod mellan datorerna jag arbetar på. Då jag använder en Macbook air när jag är i skolan men när jag väl är hemma vill jag ha möjligheten att använda min vanliga setup. Problemet är att det blir en väldigt massa flyttande av filerna när jag byter dator, speciellt nu när jag håller på med java, php, javascript, html, css och kanske c# till gymnasiearbetet. Och flytta den mängden projekt manuellt varje gång jag vill jobba på den andra datorn är väldigt opraktiskt.

Jag känner att jag inte kan vara den ända som har hamnat i sitsen att man vill koda på flera datorer "samtidigt" men slippa att flytta all kod mellan datorerna med hjälp av tex usb diskar. Om det gör någon skillnad på lösningar utvecklar jag i primärt i Atom och Eclipse men visual studio kan även bli relevant i framtiden pga gymnasiearbete.

Jag och 2st kompisar planerar även att utveckla ett litet spel inom snar framtid, finns det någon lösning för så att vi kan se varandras kod i "realtime" när vi sitter och jobbar med det även fast vi inte sitter på samma plats?

Mvh Matsson!

Använd Github. Löser alla dina problem. Du kan lätt byta dator och få med dig all din kod. Du kan dela ut koden till andra valda personer etc. Det sker inte i realtid, och det tycker jag inte att det ska göra heller. Arbetssättet du vill ha är att du kodar lite och sedan checkar in på Github löpande.

https://github.com/

Blir du dessutom en stjärna på Git är det något som kommer att underlätta för dig när du ska jobba i framtiden.

Använd gilla för att markera nyttiga inlägg!

Trädvy Permalänk
Medlem
Plats
Höör
Registrerad
Jun 2002

git. Någon ovan skrev att det använder man när man är flera/när det gäller stora projekt men så behöver det inte alls vara. Du kan använda exempelvis github.com som "lagringsplats/repo" för dina git'ar, men gratisvarianten erbjuder bara publika repon (dvs andra kan se din kod).

Vill du behålla det privat (iom att det är skolarbete) så finns bitbucket.org som är motsvarande github men där kan du ha privata repon gratis.

Citera mig för svar.
Arch Linux

Trädvy Permalänk
Medlem
Plats
Jönköping
Registrerad
Okt 2004

Kolla upp GitHub och Screenhero.

Idioter förbokar datorspel.

Trädvy Permalänk
Medlem
Plats
Hammarö
Registrerad
Jan 2004

Jag skulle lätt rekommendera Codeanywhere.

Citera mig om du önskar ett snabbare svar.
Min blogg

Trädvy Permalänk
Medlem
Plats
Karlskrona
Registrerad
Aug 2009

Då det är "synka" du säger dig vilja göra så är exempelvis dropbox eller liknande perfekt. SVN, git osv är bra för revisionshantering. Men inte för att endast synka. De tvingar dig nämligen i så fall att comitta in kod bara för att kunna checka ut den på en annan maskin och fortsätta jobba och låter dig då inte kunna utgå ifrån att du tex alltid comittar in kod som kompilerar osv.

Asus Zenith Extreme | 32gb DDR4 3200MHZ CL14 | Threadripper 1950X | 1080Ti
Asus Z97 Pro Gamer | 32gb ram DDR3 2400MHz | i7 4790k | 2 x R9 390 - Barnen fått ta över
Asrock P67 Extreme4 rev3 | 16gb DDR3 2400MHz | i7 2600K | R9 290 - Barnen fått ta över
En massa bärbara, servrar, RPi's och andra boxar

Trädvy Permalänk
Medlem
Plats
Knivsta
Registrerad
Nov 2002

Bitbucket rekommenderar jag. Använder det själv.

Webb -och apputvecklare på Greater Than AB
Min hemsida | Frilansutvecklaren | LinkedIn profil.
Hemdator: Thinkpad T410S | Jobbdator: Microsoft Surface Pro 4 | Mobil: Samsung S7 Edge.

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Mar 2009

Som andra har svarat löser versionshanteringssystem dina problem.
Jag föredrar Git, du kan sedan lägga upp dina projekt på GitHub eller liknande.

Kommer inte ihåg om du kan ha privata projekt på GitHub utan att betala, annars finns bitbucket där det skall gå att skapa privata repositories.

/emeens

Skickades från m.sweclockers.com

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Dec 2014

Skulle definitivt rekommendera Git, speciellt då det är vad som verkar användas oftast i eftergymnasiala miljöer (jobb inom programmering eller utbildning inom programmering). Som nämnt tidigare i tråden är Github väldigt bra för detta. Enbart grundläggande delar som överföring för en person mellan olika datorer är inte svårt att lära sig.

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Nov 2009
Skrivet av emeens:

Som andra har svarat löser versionshanteringssystem dina problem.
Jag föredrar Git, du kan sedan lägga upp dina projekt på GitHub eller liknande.

Kommer inte ihåg om du kan ha privata projekt på GitHub utan att betala, annars finns bitbucket där det skall gå att skapa privata repositories.

/emeens

Skickades från m.sweclockers.com

Som student kan man ha 5 privata repon på github.

Corsair 250D || i5 4690K || MSI Z97I Gaming ACK || MSI GTX 980Ti Gaming 6G || 16GB Crucial Ballistix RAM || Samsung 850 Evo 250GB || EVGA Supernova G2 750W
BenQ XL2411Z|BenQ GW2250H|Dell U2311H
BenQ W1300 | Yamaha RX-A830 | Playstation 3

Trädvy Permalänk
Medlem
Plats
Umeå
Registrerad
Dec 2010

Git genom Bitbucket kan jag varm rekommendera för versionhantering. För skolarbete använde jag personligen alltid Dropbox och var grymt nöjd med det. Jag delade exempelvis inlämingsuppgifter direkt via dropbox till läraren. Riktigt smidigt.

Skrivet av Matsson:

Jag och 2st kompisar planerar även att utveckla ett litet spel inom snar framtid, finns det någon lösning för så att vi kan se varandras kod i "realtime" när vi sitter och jobbar med det även fast vi inte sitter på samma plats?

När det gäller detta så vill jag rekommendera Superpowers. En rätt så ny spelmotor som är till specifikt för att kunna koda och se varandras ändringar direkt. Riktigt trevligt. Den använder dessutom typescript som är en påbyggnad av Javascript som du redan prövat på. Om ni behöver hjälp att komma igång får ni gärna höra av er så kan jag hjälpa till med uppstarten.

Trädvy Permalänk
Moderator
Registrerad
Aug 2007
Skrivet av inquam:

Då det är "synka" du säger dig vilja göra så är exempelvis dropbox eller liknande perfekt. SVN, git osv är bra för revisionshantering. Men inte för att endast synka. De tvingar dig nämligen i så fall att comitta in kod bara för att kunna checka ut den på en annan maskin och fortsätta jobba och låter dig då inte kunna utgå ifrån att du tex alltid comittar in kod som kompilerar osv.

Som ganska många här är inne på så är tex Git inte bara revisionshantering, det är mycket mycket mer. Min tanke är att man inte vill synka kod som inte kompilerar och/eller inte kör. Det man vill få in är ett arbetssätt där man arbetar i korta cykler där koden kontinuerligt uppdateras ofta och hela tiden funkar. Då har man lärt sig ett arbetssätt som man har nytta av om man tänker sig att jobba med utveckling i framtiden. Om man inte kan färdigställa en funktion till ett läge där man kan checka in den under en tidsperiod som man kan tänka sig att arbeta så ska man inte börja på den.

Använd gilla för att markera nyttiga inlägg!

Trädvy Permalänk
Medlem
Plats
Karlskrona
Registrerad
Aug 2009
Skrivet av giplet:

Som ganska många här är inne på så är tex Git inte bara revisionshantering, det är mycket mycket mer. Min tanke är att man inte vill synka kod som inte kompilerar och/eller inte kör. Det man vill få in är ett arbetssätt där man arbetar i korta cykler där koden kontinuerligt uppdateras ofta och hela tiden funkar. Då har man lärt sig ett arbetssätt som man har nytta av om man tänker sig att jobba med utveckling i framtiden. Om man inte kan färdigställa en funktion till ett läge där man kan checka in den under en tidsperiod som man kan tänka sig att arbeta så ska man inte börja på den.

Kändes dock mer som att det personen efterfrågade var ett sött att arbeta på kod och när han måste lämna den datorn koden ligger på och kanske tar med sig en laptop kunna fortsätta där han/hon var. Dessa system underlättar då inte utan skapar närmare ett "hinder" eller används på ett sätt de primärt inte var tänkt.
Då passar Dropbox utmärkt. Man kan sedan checka in den kod man anser klar i lämpligt revisionshanteringssystem. Men som en mekanism för att möjliggöra åtkomst till kod man jobbar på på flera olika datorer man använder så är de inte det smidigaste valet.
Men det hindrar som sagt inte TS från att använda det för att hantera koden och checka in funktionalitet.

Asus Zenith Extreme | 32gb DDR4 3200MHZ CL14 | Threadripper 1950X | 1080Ti
Asus Z97 Pro Gamer | 32gb ram DDR3 2400MHz | i7 4790k | 2 x R9 390 - Barnen fått ta över
Asrock P67 Extreme4 rev3 | 16gb DDR3 2400MHz | i7 2600K | R9 290 - Barnen fått ta över
En massa bärbara, servrar, RPi's och andra boxar

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Mar 2009
Skrivet av inquam:

Kändes dock mer som att det personen efterfrågade var ett sött att arbeta på kod och när han måste lämna den datorn koden ligger på och kanske tar med sig en laptop kunna fortsätta där han/hon var.
Dessa system underlättar då inte utan skapar närmare ett "hinder" eller används på ett sätt de primärt inte var tänkt.

Jag håller inte med.
I det enklaste av fallen kan man kontinuerligt checka in allt och pusha upp det på master, att dessutom få en historik på vad man har gjort underlättar. Detta är ganska likt att använda dropbox.

Fördelen med git är att man enkelt kan ha sin fungerade kod i exempelvis master och även checka in trasig kod i en separat branch för att enkelt kunna slå ihop koden när man är redo (merge).

Som andra har nämnt är det även meriterande att kunna använda git när han/hon söker jobb i framtiden.

/emeens

Trädvy Permalänk
Medlem
Plats
Karlskrona
Registrerad
Aug 2009
Skrivet av emeens:

Jag håller inte med.
I det enklaste av fallen kan man kontinuerligt checka in allt och pusha upp det på master, att dessutom få en historik på vad man har gjort underlättar. Detta är ganska likt att använda dropbox.

Fördelen med git är att man enkelt kan ha sin fungerade kod i exempelvis master och även checka in trasig kod i en separat branch för att enkelt kunna slå ihop koden när man är redo (merge).

Som andra har nämnt är det även meriterande att kunna använda git när han/hon söker jobb i framtiden.

/emeens

Det är precis detta jag talar om. Om syftet är att ha två mappar på två datorer synkade för att lätt kunna arbeta vidare vid den dator man råkar sitta vid så är detta extra rörigt. Att komma ihåg att checka in alla filer när man lämnar datorn bara för att ha den möjligheten är helt galet. Även om det GÅR att göra så är det en väldigt omständig lösning. Det är som att använda en skiftnyckel för att öppna en läsk. Det går men är långt ifrån optimalt. Dropbox och liknande tjänster gör PRECIS det man eftersträvar.

Att använda SVN, git osv på ett sätt som motsvarar detta kommer om något vänja en vid att använda verktygen "fel". Det finns inget fel i att använda dessa verktyg som de traditionellt används. Men det kan göras parallellt. Projekten kan synkas mellan personens datorer och fortfarande checkas in när det är lämpligt.
Om frågan hade varit att "synka" projektet mellan flera utvecklare så hade Dropbox varit en dålig idé. Men för en person att ha tillgång till sin kod på flera datorer i ett state som propagerar till alla datorerna är precis vad dessa system gör bra. Där är SVN, git etc inte alls optimala verktyg för arbetet. Det är en onödig tröskel för att åstadkomma något som via dessa verktyg blir krångligare än med exempelvis Dropbox.

Vad git gör bra och hur man använder det och hur bra detta kan vara att lära sig har inget med den ursprungliga frågan att göra och krockar på inget sätt med användandet av Dropbox, rsync, Own cloud osv för att synka ett dokument (eller i detta fall kod) mellan sina arbetsstationer.

Ser man inte hur användandet skiljer sig ifrån den ursprungliga frågan så har man antingen missuppfattat vad TS sa sig vilja åstadkomma eller så verkar man inte vilja använda rätt verktyg för rätt sak.

Jag har jobbat med olika revisionshanteringssyste i 15-20 år, inklusive CVS, SVN, Mercurial, Git osv. Jag har tidigare använt dem för enkel "synk" mellan min stationära och laptop. För att just synka så jag kan koda lite på min stationära och sedan lägga mig i soffan och koda på min laptop fungerar de till, men det är otroligt osmidigt.
Det betyder inte att verktygen inte är bra för att just hantera revisioner och historik.
Men en smidig lösning som möjliggör detta är dock tex Dropbox. Du kan sitta och koda på din stationära, frugan kommer och vill låna den och du tar din laptop och fortsätter precis där du var. Inget incheckande för att göra det möjligt osv. När du sedan har exempelvis en funktion klar (eller vad man nu har för policy) så kan man checka in i SVN, Git eller vad man nu kör. Ditt repo kommer då innehålla historik precis som om du suttit vid en dator och inte en massa "skräpcomits" gjorda bara för att du skulle kunna byta dator du sitter vid.
Då använder man två system för vad de var ämnade till och det fungerar ypperligt.

Jag förstår att man vill lära TS att hantera exempelvis Git. Men man verkar ha missat vad frågan gällde och istället för att ge ett svar på det tala om för TS hur han borde sköta sin revisionshantering.
Men det är lite som att, till en person som sitter i Windows och behöver ha en enkel webservern för att testa en site han utvecklat lokalt, rekommendera honom att först installera Linux och sedan komma med en lösning i Linux. Visst funkar det, men det är lite onödigt för att lösa personens problem.

Asus Zenith Extreme | 32gb DDR4 3200MHZ CL14 | Threadripper 1950X | 1080Ti
Asus Z97 Pro Gamer | 32gb ram DDR3 2400MHz | i7 4790k | 2 x R9 390 - Barnen fått ta över
Asrock P67 Extreme4 rev3 | 16gb DDR3 2400MHz | i7 2600K | R9 290 - Barnen fått ta över
En massa bärbara, servrar, RPi's och andra boxar

Trädvy Permalänk
Medlem
Registrerad
Jan 2005

@ChipZ:

Unlimited private repositories (normally $7/month) while you are a student.

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Mar 2009

@inquam:
Jag förstår din poäng men anser ändå att komma igång med exempelvis git är vettigt med tanke på att han/hon pratar om att utveckla med vänner inom snar framtid.

Man kan lägga repot på dropbox om man vill ha båda världar.

Edit: rebase är ett bra alternativ om man vill bli av med "skräpcommits" när man slår ihop koden.

/emeens

Trädvy Permalänk
Medlem
Plats
Karlskrona
Registrerad
Aug 2009
Skrivet av emeens:

@inquam:
Jag förstår din poäng men anser ändå att komma igång med exempelvis git är vettigt med tanke på att han/hon pratar om att utveckla med vänner inom snar framtid.

Man kan lägga repot på dropbox om man vill ha båda världar.

Edit: rebase är ett bra alternativ om man vill bli av med "skräpcommits" när man slår ihop koden.

/emeens

Ursäkta mig, men om du skriver "ändå anser att det är vettigt att komma igång med git" så förstår du uppenbarligen inte min poäng. Jag har inte sagt att han inte kan använda git (eller svn) när han skall koda med polare. Har inte sagt att det är en dålig idé. Vad jag säger är att det är för att lösa något annat än det TS primärt ber om och kan göras parallellt.
För att åstadkomma det TS vill, synka filer (I detta fallet kod) mellan ett par av sina egna datorer för eget bruk så är get, svn, mercurial osv långt ifrån optimala men med extrajobb så kan de användas. Att man kan komma ihåg att manuellt checka in filer när man byter dator och sedan köra rebase i git visar ju just detta. Det går, men är inte optimalt. Men det finns system skapade för exakt detta som är mycket smidigare för att lösa det problemet. Att sänkning sker automatiskt i bakgrunden är ju ljusår smidigare för just sänkning av mappar. Att de även kan användas parallellt med exempelvis got var något jag lyfte fram som en bra sak om TS börjar utveckla med andra eller bara vill ha sin kod i ett revisionshanteringssystem.

Så min poäng är rätt verktyg för rätt sak och kombinera där det gör nytta. Inte tvinga de fyrkantiga bitarna genom runda hål.

Asus Zenith Extreme | 32gb DDR4 3200MHZ CL14 | Threadripper 1950X | 1080Ti
Asus Z97 Pro Gamer | 32gb ram DDR3 2400MHz | i7 4790k | 2 x R9 390 - Barnen fått ta över
Asrock P67 Extreme4 rev3 | 16gb DDR3 2400MHz | i7 2600K | R9 290 - Barnen fått ta över
En massa bärbara, servrar, RPi's och andra boxar

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Nov 2009

@l4nky:
Coolt, då har dom ökat. Det var 5 när jag skaffade det (i våras), hittar dock inte när dom uppgraderade.

Corsair 250D || i5 4690K || MSI Z97I Gaming ACK || MSI GTX 980Ti Gaming 6G || 16GB Crucial Ballistix RAM || Samsung 850 Evo 250GB || EVGA Supernova G2 750W
BenQ XL2411Z|BenQ GW2250H|Dell U2311H
BenQ W1300 | Yamaha RX-A830 | Playstation 3

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Mar 2009

@inquam:

Ser ingen poäng att fortsätta med denna diskussionen då den inte är givande för TS, han/hon har fått flera råd och för göra sin bedömning om det är värt att börja använda släggan eller endast köra dropbox.

Gott nytt år!

/emeens