Lecture 4 Flashcards
Mention some good things about IDEs:
Highlighting, Completion, Execution, Debugging
What is a version control system (VCS)?
Gives concurrent development with multiple people and revisions
What are some other (bad solutions) to a version control system?
Local Copy on Disk, Zip File via Email and DropBox - downside is: Concurrent edits are not possible, management complicated
What does development with multiple people look like?
You can be multiple developers, software architects testers and the build server. All of you are working together on the source code
Again, what do we say software development is?
iterative and incremental, bc it involves building software in small, manageable parts.
What terms are used when defining a version control system?
Version, branch (temporary), merge (development line), tag
Her
Why do we need version control, when we say software development is incremental?
Bc this creates multiple versions of the software system. Some of those versions need to be maintained, e.g., when they were released to customers who do not necessarily update to the newest version immediately but still expect updates to the
version they have installed.
What is a merge conflict?
When a conflict occurs when attempting to merge with changes that can’t be integrated easily (development line deleted some code).
What does version control systems (usually) combine?
The management of multiple versions with an
online code repository
What is SVN?
SVN (subversion) is a client-server version that has a local working copy of the source code, used for development. When a meaningful set of changes have been done, they can be sent to the remote repository.
Give a step by step of SVN.
Import: From the local computer, you send the source code to the remote repository (done only once, for a directory to initialise the repository)
Check out: Initalise the local working copy with data from the repository. This is done once for a directory from the repository, when copying it to the local computer
Commit: Sends changed to the repository to integrate it into the current state fo the reporistory
Update: Retrieves the changed data from the repository where it’s integrated into the current state of the working copy.
Mention the most relevant VCS, and what kind they are
Subversion (SVN), Client-server version control
Git, Distributed version control
What are some SVN clients?
Command line: Apache SVN, SlikSVN
IDE (via plug-in):
* Eclipse
* * Subversive
* * Subclipse
* IntelliJ IDEA and NetBeans
* * integrated
External tool: Tortoise SVN, Smart SVN
What are characteristics of SVN (Subversion)?
- Can check-out parts of
projects (e.g., directories) (not at all how SVN is intended) - Renames/moves count as
new files (lost history) - Mediocre support for nonlinear workflows
What are characteristics of Git?
- Distributed
- Can check out only entire projects (good)
- Recognizes moves/renames (history maintained)
- Very good support for nonlinear workflows
How does Git work?
Git is a distributed version control system that has a local repository and doesn’t need network connection. The commits are not visible (before pushing) to other people collaborating remotely. This has the benefit that it fosters frequent commits even if these may only be meaningful to the current developer (and not the entire team).
Write the five most common commands for SVN:
- Import: svn import C:\repository LINK
- Checkout: svn checkout LINK
- Add: svn add file.java
- Commit: svn commit -m “comment”
- Update: svn update
Give a step by step of Git.
Init: Sending its data to the local repository from the directory. This is done only once, to initialise the repository with the respective data. The data is not yet available, unless it has been pushed.
Clone: Initialises the local repository and local working copy with the data from the remote repository. This is done only once, for the remote repository when copying to the local computer.
Commit: Send changed data to the local repositort and integrates it into the current state of the repository. The data is still not available in the remote repository as it hasn’t been pushed yet.
Push: Send the data from the local repository to the remote repository.
Pull: Sends the data from the remote reposiroty to the local reposiroty where it’s integrated into the current state of the working copy.
Her