Domanda

Ora prima di spararmi per aver messo in giro una domanda duplicata su Sof, lasciami prima conoscere con esattamente ciò che sto cercando, e affronterò altre domande e risposte e perché è insufficiente.

Domanda # 1 :

Sto cercando un modo per eseguire modifiche collaborative in diretta, mentre la fonte viene mantenuta su un server di controllo della fonte centralizzato. Ad esempio, se io e Joe Blow stanno modificando il file X.cs contemporaneamente, dovremmo essere in grado di vedere le modifiche di ogni altro tipo come tipo. Quasi come se fossimo seduti insieme allo stesso computer. Ora prendi il seguente scenario: io e Joe vanno offline, e Nimha Smith decide che vuole aggiornare un codice. Quando torno online il giorno seguente, vengo premuto il codice che Nimha è stato aggiornato mentre stavo dormendo / lontano dal server.

Questa è una combinazione dell'idea di collaborazione dal vivo e un sistema di controllo sorgente come SVN, ecc.

Affrontazione dei possibili duplicati:

Ci fu una domanda simile, qui: editing collaborativo per Sviluppo .NET - Quali sono le possibilità , tuttavia non mi dà nulla di utile e spiegherò perché:

    .
  • vsanywhere : attraversa un server pubblico centrale (direzione giusta ..?) Tranne tutte le parti coinvolte Per avere lo stesso identico codice sulla propria macchina prima di unirsi a una sessione, e una volta che andrai offline la sessione viene distrutta.
  • SOURCEMEEM : viene eseguito con un sistema P2P, quindi nessun server per tenere traccia delle modifiche mentre offline ecc. Non l'ho provato, quindi non posso attestare come può unire il codice (se può affatto)
  • Collabedit : non VisualStudio
  • cloud 9 : non Visualstudio

E c'è ovviamente Questa domanda e Questo che sono domande direttamente sui software di controllo sorgente come SVN o Git. Ora, ho cercato di ottenere Vsanywhere e SVN per giocare insieme insieme, (SVN per ottenere modifiche apportate mentre offline e vsanywhere per gli sviluppatori online) ma semplicemente non funziona.

<edit>

Ho trovato di recente questo progetto di tesi di laurea denominato Collab , e sembra una buona idea, ma io non riuscivo a sembrare che funzioni per provarlo. Se qualcun altro ha qualche successo con esso per favore fammi sapere cosa hai fatto. Sembra se riesco a far funzionare questo progetto di collab, sembra che sarebbe una buona partenza per creare qualcosa per adattarsi ai miei bisogni.

<edit2>

Ho anche trovato Beweeevee che aveva un'estensione visiva studio per il suo servizio, ma tutto il I collegamenti per quello sono diventati morti. E CodeAlike che è stato probabilmente la loro sostituzione per la collaborazione VS in tempo reale ha una voce della FAQ che spiega che sono le funzionalità in tempo reale stato rimosso e sarà ri-implementato nel "futuro".

Domanda # 2:

Ora questo mi porta alla seconda parte della mia domanda perché mi rendo pienamente conto che potrebbe non essere un programma là fuori che si adatta al mio alto ordine. Dove potrei iniziare a implementare software come questo anch'io? Ci sono del codice di modifica del controllo source-source-source-source esistente che posso iniziare a costruire per creare questo? Oppure sono praticamente bloccato a partire da zero se voglio implementarlo. E sono sicuro che puoi vedere dai tag che vorrei affrontare un compito come questo in C #, se devo affrontarlo affatto.

Aggiornamento 2017

Poiché vi è stato un continuo interesse espresso nei commenti che ho creato una giter dove possiamo raccogliere chiunque interessato e potenzialmente rendere questa realtà: https://gitter.im/sof-centrailed-collab-editing/Lobby .

È stato utile?

Soluzione

Se vuoi affrontarlo a te stesso, potresti farlo come un'estensione di Visual Studio. Si noti che ci sono due diversi tipi di plug-in: "add-on" e "estensioni". Personalmente penso che dovresti scrivere un'estensione , ma in entrambi i modi, puoi scriverli in C #.

È necessario agganciare l'editor di testo di Visual Studio. Potresti google per come farlo, o semplicemente guardare un esempio esistente: Un'estensione Visual Studio per Tabstop elastici . La tua estensione dovrà monitorare le modifiche mentre li fai e quindi inviarli al server tramite un certo protocollo che progetti. Dovrai scrivere il server da solo, ma nella prima versione tutto ciò che deve essere in grado di fare è semplicemente inviare le tue modifiche a tutti gli altri che sta usando l'estensione. L'estensione farà quindi modificare tutti nell'editor di tutti gli altri.

Se qualcuno si connette al server con una versione precedente del codice, l'estensione potrebbe semplicemente scaricare la versione più recente dal server. Tuttavia, se l'utente ha effettuato modifiche mentre offline (cioè non è collegato al server), dovrai fare una fusione intelligente. Questo non è banale, ma so come farlo perché l'ho fatto prima. Se chiedi molto bene, scriverò l'algoritmo di unione per te. Allora dovrai solo nutrirlo tre file di testo: la base (la versione che è stata duratura in sincronizzazione con il server) e le due versioni modificate (quella è stata modificata offline e il più recente dal server).

Se riesci a farlo funzionare, creerai potenzialmente qualcosa invalutamente utile. Per favore assicurati di pubblicizzare il tuo lavoro! :)

Altri suggerimenti

Bene, per vedere altre persone di tipo roba e poi hanno le guerre del cursore con loro nell'editore è già stato fatto da Google Wave.IIRC è stato spinto fuori come open source o qualcosa del fatto che il progetto stesso non è riuscito.Si prende cura di tutti i tuoi problemi di aggiornamento però, ed è costruito su un modello di aggiornamento sottostante che è abbastanza robusto e solido da una prospettiva informatica.Fornisce storia e tutti i tipi di cose analogiche ad un sistema di codice sorgente.

È possibile implementare ciò che desideri come un widget di editing speciale in cima a quello.Se fai un buon lavoro puoi resuscitare Google Wave come una piattaforma di editing collaborativa utile e rifinita.

Informazioni su VS Anywhere, probabilmente, al tempo provato VSA, (ARC), la versione del software è stata rilasciata candidato 2 (= buggy), quindi è normale che hai trovato alcuni problemi con l'integrazione SVN e abbiamo avuto problemi aperti con TFS e Git.

Attualmente, sull'ultimo RC3 Alcuni di questi problemi SVN sono stati risolti, ci aspettiamo di avere tutto pronto per la versione finale presto

C'è la possibilità di eseguire la propria istanza del server VS Anywhere nella tua LAN, in modo da non essere davvero necessario utilizzare i nostri server pubblici, se sei uno studente o hai un progetto open source, vs anywhere client e il server è Gratuito per te, se non è per uso commerciale e c'è una piccola tassa che dovresti pagare.

Come indicato dalla Resynchronizzazione Timwi dalla codifica offline non è banale e davvero complessa da implementare, pensiamo che un SCM sia lo strumento giusto per fare questo lavoro e questo perché non abbiamo ancora lavorato in questa direzione, la nostra opinione è a Almeno finché non lavoriamo su quest'area, è possibile utilizzare SCM standard per estrarre le ultime modifiche e fondersi con la copia locale prima di configurare una sessione

VSA semplificherà il processo per bootstrap delle sessioni, consentendoti a 1) Controllare le differenze da remote Visual Studio Copies e 2) Se una qualsiasi, si fondono nella tua copia locale per essere nello stato giusto, proprio quando si apre la sessione . ("1)" è implementato "2)" sta arrivando)

La gestione della sessione non è una roba banale e davvero complessa, ci sono molti possibili scenari e questo perché pulirà la sessione quando finiamo, tuttavia è possibile avviare nuovamente la sessione in qualsiasi momento con un solo clic ... Spero che questa informazione ti aiuti e se hai più domande sentitevi liberi di contattare VS ovunque supporto in qualsiasi momento

Informazioni se si desidera iniziare un progetto per implementare tale plug-in possiamo offrire informazioni su come fare le cose, un bel punto di partenza è capire la trasformazione operativa come avrai bisogno di questo approccio per implementare la modifica concorrente, anche tu ne avrai bisogno Un P2P o protocollo client / server per trasferire i dati tra i clienti.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top