· Created Date: 3/19/2010 8:29:00 AM

38
NEURON Open Source Development

Transcript of  · Created Date: 3/19/2010 8:29:00 AM

Page 1:  · Created Date: 3/19/2010 8:29:00 AM

NEURON Open Source Development

Page 2:  · Created Date: 3/19/2010 8:29:00 AM
Page 3:  · Created Date: 3/19/2010 8:29:00 AM
Page 4:  · Created Date: 3/19/2010 8:29:00 AM
Page 5:  · Created Date: 3/19/2010 8:29:00 AM
Page 6:  · Created Date: 3/19/2010 8:29:00 AM
Page 7:  · Created Date: 3/19/2010 8:29:00 AM
Page 8:  · Created Date: 3/19/2010 8:29:00 AM
Page 9:  · Created Date: 3/19/2010 8:29:00 AM
Page 10:  · Created Date: 3/19/2010 8:29:00 AM

mercurial − distributed source control managementNEURON sources (c, c++, nrn/lib/hoc, nrn/lib/python)

Page 11:  · Created Date: 3/19/2010 8:29:00 AM

mercurial − distributed source control managementNEURON sources (c, c++, nrn/lib/hoc, nrn/lib/python)

http://mercurial.selenic.com/http://hgbook.red−bean.com/read/

Page 12:  · Created Date: 3/19/2010 8:29:00 AM

mercurial − distributed source control managementNEURON sources (c, c++, nrn/lib/hoc, nrn/lib/python)

http://mercurial.selenic.com/http://hgbook.red−bean.com/read/

Why mercurial?

Page 13:  · Created Date: 3/19/2010 8:29:00 AM

mercurial − distributed source control managementNEURON sources (c, c++, nrn/lib/hoc, nrn/lib/python)

http://mercurial.selenic.com/http://hgbook.red−bean.com/read/

Why mercurial?

Developers have their own independent repositoryto manage their project.

Page 14:  · Created Date: 3/19/2010 8:29:00 AM

mercurial − distributed source control managementNEURON sources (c, c++, nrn/lib/hoc, nrn/lib/python)

http://mercurial.selenic.com/http://hgbook.red−bean.com/read/

Why mercurial?

Developers have their own independent repositoryto manage their project.

Can always stay up to date with the version at theNEURON web site without losing their changes.

Page 15:  · Created Date: 3/19/2010 8:29:00 AM

mercurial − distributed source control managementNEURON sources (c, c++, nrn/lib/hoc, nrn/lib/python)

http://mercurial.selenic.com/http://hgbook.red−bean.com/read/

Why mercurial?

Developers have their own independent repositoryto manage their project.

Can always stay up to date with the version at theNEURON web site without losing their changes.

Can publish their repository independently orask me to incorporate into the main NEURON repository.

Page 16:  · Created Date: 3/19/2010 8:29:00 AM

mercurial − distributed source control managementNEURON sources (c, c++, nrn/lib/hoc, nrn/lib/python)

http://mercurial.selenic.com/http://hgbook.red−bean.com/read/

Why mercurial?

Developers have their own independent repositoryto manage their project.

Can always stay up to date with the version at theNEURON web site without losing their changes.

Can publish their repository independently orask me to incorporate into the main NEURON repository.

Accomplishes this easily by strong support formerging changes from one repository into another.

Page 17:  · Created Date: 3/19/2010 8:29:00 AM

Getting startedhg clone http://www.neuron.yale.edu/hg/neuron/nrn nrn

Page 18:  · Created Date: 3/19/2010 8:29:00 AM

Getting startedhg clone http://www.neuron.yale.edu/hg/neuron/nrn nrn

hg pullhg update

Page 19:  · Created Date: 3/19/2010 8:29:00 AM

Getting startedhg clone http://www.neuron.yale.edu/hg/neuron/nrn nrn

hg pullhg update

hg helphg statushg diffhg log −l 5

hg commit

Page 20:  · Created Date: 3/19/2010 8:29:00 AM

Getting startedhg clone http://www.neuron.yale.edu/hg/neuron/nrn nrn

hg pullhg update

hg helphg statushg diffhg log −l 5

hg commit

hg bundle mychanges.hg http://www.neuron.yale.edu/hg/neuron/nrn#and send to [email protected]

Page 21:  · Created Date: 3/19/2010 8:29:00 AM

Examplecreate a new repostorymkdir maincd mainem file1

line 1line 2

line 4line 5line 6line 7line 8

line 10

line 3

line 9

main.file1

Page 22:  · Created Date: 3/19/2010 8:29:00 AM

Examplecreate a new repostorymkdir maincd mainem file1hg inithg addadding file1hg commit −m ’first commit in main’

line 1line 2

line 4line 5line 6line 7line 8

line 10

line 3

line 9

main.file1

Page 23:  · Created Date: 3/19/2010 8:29:00 AM

create a new repostorymkdir maincd mainem file1hg inithg addadding file1hg commit −m ’first commit in main’hg logchangeset: 0:4d92e1bc67datag: tipuser: Michael Hines <[email protected]>date: Thu Mar 18 13:54:53 2010 −0400summary: first commit in main

line 1line 2

line 4line 5line 6line 7line 8

line 10

line 3

line 9

main.file1Example

Page 24:  · Created Date: 3/19/2010 8:29:00 AM

cd ..hg clone main myversionupdating working directory1 files updated, 0 files merged, 0 files removed, 0 files unresolved

Page 25:  · Created Date: 3/19/2010 8:29:00 AM

line 1line 2

line 4line 5line 6line 7line 8

line 10

cd ..hg clone main myversionupdating working directory1 files updated, 0 files merged, 0 files removed, 0 files unresolvedcd myversion

line 9

line 3

myversion.file1

Page 26:  · Created Date: 3/19/2010 8:29:00 AM

line 1line 2

line 4line 5line 6line 7line 8

line 10

cd ..hg clone main myversionupdating working directory1 files updated, 0 files merged, 0 files removed, 0 files unresolvedcd myversionhg logchangeset: 0:4d92e1bc67datag: tipuser: Michael Hines <[email protected]>date: Thu Mar 18 13:54:53 2010 −0400summary: first commit in main

line 9

line 3

myversion.file1

Page 27:  · Created Date: 3/19/2010 8:29:00 AM

line 1line 2line 3 changed line 3line 4line 5line 6line 7line 8

line 10

cd ..hg clone main myversionupdating working directory1 files updated, 0 files merged, 0 files removed, 0 files unresolvedcd myversionhg logchangeset: 0:4d92e1bc67datag: tipuser: Michael Hines <[email protected]>date: Thu Mar 18 13:54:53 2010 −0400summary: first commit in mainem file

line 9

myversion.file1

Page 28:  · Created Date: 3/19/2010 8:29:00 AM

line 1line 2line 3 changed line 3line 4line 5line 6line 7line 8

line 10

cd ..hg clone main myversionupdating working directory1 files updated, 0 files merged, 0 files removed, 0 files unresolvedcd myversionhg logchangeset: 0:4d92e1bc67datag: tipuser: Michael Hines <[email protected]>date: Thu Mar 18 13:54:53 2010 −0400summary: first commit in mainem filehg commit −m ’changed line 3 in myversion’

line 9

myversion.file1

Page 29:  · Created Date: 3/19/2010 8:29:00 AM

line 1line 2

line 4line 5line 6line 7line 8

line 10

cd ../main

line 3

line 9

main.file1

Page 30:  · Created Date: 3/19/2010 8:29:00 AM

line 1line 2

line 4line 5line 6line 7line 8line 9 changed line 9line 10

emcd ../main

line 3

main.file1

Page 31:  · Created Date: 3/19/2010 8:29:00 AM

line 1line 2

line 4line 5line 6line 7line 8line 9 changed line 9line 10

emhg commit −m ’changed line 9 in main’hg logchangeset: 1:8056f47bed41tag: tipuser: Michael Hines <[email protected]>date: Thu Mar 18 14:04:52 2010 −0400summary: changed line 9 in main

changeset: 0:4d92e1bc67dauser: Michael Hines <[email protected]>date: Thu Mar 18 13:54:53 2010 −0400summary: first commit in main

cd ../main

line 3

main.file1

Page 32:  · Created Date: 3/19/2010 8:29:00 AM

line 1line 2line 3 changed line 3line 4line 5line 6line 7line 8

line 10

cd ../myversion

line 9

myversion.file1

Page 33:  · Created Date: 3/19/2010 8:29:00 AM

line 1line 2line 3 changed line 3line 4line 5line 6line 7line 8

line 10

cd ../myversionhg pullpulling from /home/hines/talks/opensource/mainsearching for changesadding changesetsadding manifestsadding file changesadded 1 changesets with 1 changes to 1 files (+1 heads)(run ’hg heads’ to see heads, ’hg merge’ to merge)

line 9

myversion.file1

Page 34:  · Created Date: 3/19/2010 8:29:00 AM

line 1line 2line 3 changed line 3line 4line 5line 6line 7line 8

line 10

cd ../myversionhg pullpulling from /home/hines/talks/opensource/mainsearching for changesadding changesetsadding manifestsadding file changesadded 1 changesets with 1 changes to 1 files (+1 heads)(run ’hg heads’ to see heads, ’hg merge’ to merge)

hg logchangeset: 2:8056f47bed41tag: tipparent: 0:4d92e1bc67dauser: Michael Hines <[email protected]>date: Thu Mar 18 14:04:52 2010 −0400summary: changed line 9 in main

changeset: 1:ecd22b68116buser: Michael Hines <[email protected]>date: Thu Mar 18 14:00:37 2010 −0400summary: changed line 3 in myversion

changeset: 0:4d92e1bc67dauser: Michael Hines <[email protected]>date: Thu Mar 18 13:54:53 2010 −0400summary: first commit in main

line 9

myversion.file1

Page 35:  · Created Date: 3/19/2010 8:29:00 AM

line 1line 2line 3 changed line 3line 4line 5line 6line 7line 8line 9 changed line 9line 10

hg mergemerging file10 files updated, 1 files merged, 0 files removed, 0 files unresolved(branch merge, don’t forget to commit)

myversion.file1

Page 36:  · Created Date: 3/19/2010 8:29:00 AM

hg commit −m ’merge’

line 1line 2line 3 changed line 3line 4line 5line 6line 7line 8line 9 changed line 9line 10

myversion.file1

Page 37:  · Created Date: 3/19/2010 8:29:00 AM

hg commit −m ’merge’

line 1line 2line 3 changed line 3line 4line 5line 6line 7line 8line 9 changed line 9line 10

@ changeset: 3:9e193affb57c|\ tag: tip| | parent: 1:ecd22b68116b| | parent: 2:8056f47bed41| | user: Michael Hines <[email protected]>| | date: Thu Mar 18 14:10:06 2010 −0400| | summary: merge| || o changeset: 2:8056f47bed41| | parent: 0:4d92e1bc67da| | user: Michael Hines <[email protected]>| | date: Thu Mar 18 14:04:52 2010 −0400| | summary: changed line 9 in main| |o | changeset: 1:ecd22b68116b|/ user: Michael Hines <[email protected]>| date: Thu Mar 18 14:00:37 2010 −0400| summary: changed line 3 in myversion|o changeset: 0:4d92e1bc67da user: Michael Hines <[email protected]> date: Thu Mar 18 13:54:53 2010 −0400 summary: first commit in main

hg glogmyversion.file1

Page 38:  · Created Date: 3/19/2010 8:29:00 AM

MUSIC + NEURON 20 BlueGene/P DCMF multisend spike exchangePython Version 3 + NEURONPython can use ParallelContext bulletin board.NCS controlled spike exchange

Some projects recently mergedinto the main repository.