Week 2 DUE This Week: Safety Form and Model Release DUE Next Week: Project Timelines and Website...

18
Week 2 DUE This Week: Safety Form and Model Release DUE Next Week: Project Timelines and Website • Notebooks Lab Access SharePoint Usage • Subversion Software Conventions and Documentation (Grading)

Transcript of Week 2 DUE This Week: Safety Form and Model Release DUE Next Week: Project Timelines and Website...

Page 1: Week 2 DUE This Week: Safety Form and Model Release DUE Next Week: Project Timelines and Website Notebooks Lab Access SharePoint Usage Subversion Software.

Week 2

• DUE This Week: Safety Form and Model Release• DUE Next Week: Project Timelines and Website• Notebooks• Lab Access• SharePoint Usage• Subversion• Software Conventions and Documentation (Grading)

Page 2: Week 2 DUE This Week: Safety Form and Model Release DUE Next Week: Project Timelines and Website Notebooks Lab Access SharePoint Usage Subversion Software.

Subversion

©David Turner

Page 3: Week 2 DUE This Week: Safety Form and Model Release DUE Next Week: Project Timelines and Website Notebooks Lab Access SharePoint Usage Subversion Software.

What is Subversion?

• Subversion is a version control system.• A version control system allows users to manage

files, directories, and the changes made to them.• Subversion can manage any sort of file collection (not

only source code).

Page 4: Week 2 DUE This Week: Safety Form and Model Release DUE Next Week: Project Timelines and Website Notebooks Lab Access SharePoint Usage Subversion Software.

Working copy

Working copy

Working copy

Repository

Internet

Page 5: Week 2 DUE This Week: Safety Form and Model Release DUE Next Week: Project Timelines and Website Notebooks Lab Access SharePoint Usage Subversion Software.

Reasons to Use Subversion

• You can work more easily with other developers on software development projects.

• You can undo changes to obtain earlier versions of files.

• Subversion is well known and free.• Subversion has been under development since 2000.

Page 6: Week 2 DUE This Week: Safety Form and Model Release DUE Next Week: Project Timelines and Website Notebooks Lab Access SharePoint Usage Subversion Software.

Why SVN in EPICS?

• All software teams currently share an SVN server that is already ready to go

• SVN is still widely used in Purdue coursework• The “centralized” nature is easy to comprehend and

manage for new users of VCS (vs. Git’s distributed repos)

• Less complicated than Git (and therefore less flexible)

Page 7: Week 2 DUE This Week: Safety Form and Model Release DUE Next Week: Project Timelines and Website Notebooks Lab Access SharePoint Usage Subversion Software.

Repository versus Working Copy

• Project code is stored in a server in a data store referred to as a “repository.”

• Developers “check out” copies of the project code into their local environments. These copies are referred to as “working copies.”

• After making changes to a working copy, the developer “commits” changes to the repository.

• Other developers get these changes by “updating” their working copies.

Page 8: Week 2 DUE This Week: Safety Form and Model Release DUE Next Week: Project Timelines and Website Notebooks Lab Access SharePoint Usage Subversion Software.

Differentials (“Diffs”)

∆∆

currentversion

previousversion

previousto thepreviousversion

Page 9: Week 2 DUE This Week: Safety Form and Model Release DUE Next Week: Project Timelines and Website Notebooks Lab Access SharePoint Usage Subversion Software.

Atomic commits

• A collection of modifications either goes into the repository completely, or not at all.

• In other words, a commit will either altogether succeed, or it will altogether fail.

Page 10: Week 2 DUE This Week: Safety Form and Model Release DUE Next Week: Project Timelines and Website Notebooks Lab Access SharePoint Usage Subversion Software.

Properties

• Each file and directory has a set of properties—keys and their values—associated with it.

• You can keep certain files from being written into the repository by setting the svn:ignore property to a string that matches the files you want to omit. Such files are said to be “unversioned.”

• IMPORTANT: Properties like permissions may not sync correctly without being explicit

Page 11: Week 2 DUE This Week: Safety Form and Model Release DUE Next Week: Project Timelines and Website Notebooks Lab Access SharePoint Usage Subversion Software.

Multiple Developers: Old Style

• User A gets a copy of file X from the data store.

• User B gets a copy of file X from the data store.

• User A changes X and writes the new X back into the data store.

• User B changes his older version of X and writes this into the data store, over-writing A’s changes.

Page 12: Week 2 DUE This Week: Safety Form and Model Release DUE Next Week: Project Timelines and Website Notebooks Lab Access SharePoint Usage Subversion Software.

Multiple Developers: Copy-Modify-Merge

• Subversion uses a copy-modify-merge approach instead of locking.• User A gets a “working copy” of X.• User B gets a “working copy” of X.• User A changes his working copy of X.• User B changes her working copy of X.• A saves his copy of X into the repository.• B tries to save his copy of X into the repository, but it fails, because her

changes were made to a now stale version of X• B performs an “update,” which results in A’s changes to X to be merged

into B’s version of X.• If A’s changes do not conflict with B’s changes, the update silently

completes. If A’s changes conflict with B’s changes, subversion inserts annotation into X describing the conflicts and then reports the problem to B. B then manually resolves the conflict.

• Whether B needed to manually resolve conflicts or not, the next step is for B to commit her changes into the repository, which now succeeds.

Page 13: Week 2 DUE This Week: Safety Form and Model Release DUE Next Week: Project Timelines and Website Notebooks Lab Access SharePoint Usage Subversion Software.

Copy-Modify-Merge in Practice

• With copy-modify-merge, users do not wait on each other.

• In practice, conflicts are rare and are usually straightforward to resolve.

• Copy-modify-merge does not work well with binary files, because changes can not be merged. For this reason, subversion provides a lock-modify-unlock process when needed.

Page 14: Week 2 DUE This Week: Safety Form and Model Release DUE Next Week: Project Timelines and Website Notebooks Lab Access SharePoint Usage Subversion Software.

Revisions

• Subversion transactions are atomic: they either succeed entirely or fail entirely

• After the repository is initially created, it is an empty folder and has revision number 0.

• After committing to a repository with revision number n, the repository is changed to version n+1.

Page 15: Week 2 DUE This Week: Safety Form and Model Release DUE Next Week: Project Timelines and Website Notebooks Lab Access SharePoint Usage Subversion Software.

Revisions and Working Copies

• Working copies do not always correspond to any single revision of the repository; they may contain files from several different revisions.

Page 16: Week 2 DUE This Week: Safety Form and Model Release DUE Next Week: Project Timelines and Website Notebooks Lab Access SharePoint Usage Subversion Software.

Revisions and Working Copies• User A checks out repository repo.

repo/system.h3repo/system.cpp 3

• User A modifies system.h and commits this file.

repo/system.h4repo/system.cpp 3

• User B commits changes to system.cpp, and A updates.

repo/system.h5repo/system.cpp 5

Page 17: Week 2 DUE This Week: Safety Form and Model Release DUE Next Week: Project Timelines and Website Notebooks Lab Access SharePoint Usage Subversion Software.

Local File States and Consequences

update commit

Unchanged, and current

does nothing does nothing

Locally changed, and current

does nothing writes changes into repo

Unchanged, and out-of-date

replaces working file with new one

does nothing

Locally changed, and out-of-date

merges changes into working file

operation fails with out-of-date error

Page 18: Week 2 DUE This Week: Safety Form and Model Release DUE Next Week: Project Timelines and Website Notebooks Lab Access SharePoint Usage Subversion Software.

Branching and Merging

• Something to note, but may not run into often for our Projects

• Branches represent different timelines of the repository that can be merged later on.

• Useful for a lot of changes to the “trunk”• Useful for splitting up large modular features• Git is all about merging and branching

especially locally