conversas [email protected] - "svn+code.ua"
TRANSCRIPT
Diogo Gomes<[email protected]>
Diogo [email protected]
Diogo Gomes <[email protected]> 3
Managing Projects
• Where do you keep issues/to-do’s ?– Email ?– Excel Sheets ?– Post-it’s
• What about documentation– Word document
• How do you handle collaboration ?!
Diogo Gomes <[email protected]> 4
Managing Files
• Exchanging files, code, docs– Email ?– FTP ?– USB sticks ?!
• Backups– Renaming files (v1, v2, very old, backup, bck)– Multiple folders– External device (USB stick, USB disk)
Diogo Gomes <[email protected]> 5
Solutions
• Software tools can help:–Track iterations–Organize Documentation–Organize Data/Code–Collaborate
Diogo Gomes <[email protected]> 6
Project Management
• Innumerous Tools– MS Project, Trac, *Forge, Redmine, Google Code
• Functionalities– Collaboration (wiki’s, mailing lists, forum’s)– Issue Tracking– Time Planning– Portfolio– Resources Management– Documentation Management
Diogo Gomes <[email protected]> 7
Wiki
• It’s a set of interlinked web pages created using a simplified markup language
• Enables cooperative editing of documentation– Anyone can edit!
• Navigation is usually chaotic, but provides a better mapping of relationship between subjects.
Diogo Gomes <[email protected]> 8
Issue Tracking
• trouble ticket system, support ticket or incident ticket system can overlap with bug tracker
• Systematic approach to problem solving• Enables efficient tracking of progress• Provides the means to monitor and
coordinate a project progress
Diogo Gomes <[email protected]> 9
Source Code Management (SCM)
• don’t worry about overwriting files or losing code.
• keep a constant history of every file in your project.
• view the changes to specific code, review with your team, and even roll back changes to previous versions.
Diogo Gomes <[email protected]> 10
Benefits of SCM’s
• Improves team collaboration. – Many people can update the same files without
the risk of overwriting each others work.• Can provide a constant backup of your files in
a central location, where you can share changes and updates with team members.
Diogo Gomes <[email protected]> 11
Source Code Management (SCM)
• SCM models– Atomic Operations– File Locking– Version Merging– Baselines, labels and tags
• Repository Model– Centralized (CVS, SVN, VSS)– Distributed (GIT, Mercurial)
Diogo Gomes <[email protected]> 12
CodeUA• Objectives
– Provide the academic community a tool that can assist in software project management.• Research (IEETA, IT)• Classes (ARA, Eng. Software, Eng. Serviços, FR, P*, etc)
– To allow both public and private projects– To gather all efforts under a single entity/tool– Multiplatform Solution (Windows, Linux, OSX)– Integrated with the university remaining services (SSO)
• Opportunities– To provide students experience using software and project management tools– Usage of the tool in order to track grad-students progress– Mass software collection tool
• Platform used: Redmine + SVN (WIP: GIT)
Diogo Gomes <[email protected]> 13
Redmine
• http://www.redmine.org/• Main features
– Multiple project support– Flexible access control system– Issue tracking– Document Management– RSS and E-Mail notification– Per Project Wiki’s and Forum’s– Time Management including Gantt graph generation– Easy integration of several SCM’s (eg: SVN, CVS, Git)– New functionalities can be introduced through Plugins
• Built on Ruby-on-Rails (RoR) (Mongrel + MySQL)
Diogo Gomes <[email protected]> 14
Projects
• Subprojects– Ex: Project Cake, sub-project
Chocolate Cake
• Issues can be used to track both features and bugs
• Integration between SCM, Issues, Wiki– Example: commits can
reference an Issue #
• Roadmaps enable to track project milestones, and plan ahead
Diogo Gomes <[email protected]> 15
SCM Integration
• Navigation through the repository
• Statistics • Comments Integration• Shared Authentication
(Web / SCM)
Diogo Gomes <[email protected]> 16
SVN
• How can I use SVN?• Client Software– Windows: TortoiseSVN– Linux: Use the cmdline – OSX: Versions
• Create your project– CodeUA – Google Code– SourceForge
Diogo Gomes <[email protected]> 17
SVN basics
• Checkout– Download project
• Alter your files locally
Diogo Gomes <[email protected]> 19
SVN (1)
• svn checkout path://to.project.site/ folder
– imports the content of the URL into a new folder called subversion
• svn update
– used to grab the latest version of files from the Subversion server.
• svn log
– log of what happened in the repository
Diogo Gomes <[email protected]> 20
SVN (2)
• svn import /fs/path path://to.project/
– Used to initially import your files to the server• svn add file
– indicates that a new file should be versioned• svn delete file
– indicates that a file should be removed from the HEAD
• svn commit
– used to grab the latest version of files from the Subversion server.
Diogo Gomes <[email protected]> 21
SVN (3)
• svn diff file
– what have I done compared with the repository • svn blame file
– who did which change to the file• svn status
– shows the things that have changed in your working copy.
Diogo Gomes <[email protected]> 22
WALK THROUGHhttps://code.ua.pt
Diogo Gomes <[email protected]> 24
GIT
• Not dependent on network access or a central server
• Strong support for non-linear development
• Very Fast• Compatibility with
existing systems/protocols
• Important Concepts– Pull, Push, Commit