Visual SourceSafe Seamless Integration. 2 Agenda Version Control Architecture Features ...

39
Visual SourceSafe Visual SourceSafe Seamless Integration

Transcript of Visual SourceSafe Seamless Integration. 2 Agenda Version Control Architecture Features ...

Page 1: Visual SourceSafe Seamless Integration. 2 Agenda  Version Control  Architecture  Features  Integration  Configuration & Maintenance  Questions.

Visual SourceSafeVisual SourceSafe

Seamless

Integration

Page 2: Visual SourceSafe Seamless Integration. 2 Agenda  Version Control  Architecture  Features  Integration  Configuration & Maintenance  Questions.

2

AgendaAgenda

Version ControlVersion Control ArchitectureArchitecture FeaturesFeatures IntegrationIntegration Configuration & MaintenanceConfiguration & Maintenance QuestionsQuestions

Page 3: Visual SourceSafe Seamless Integration. 2 Agenda  Version Control  Architecture  Features  Integration  Configuration & Maintenance  Questions.

3

I can’t stand it when I ...I can’t stand it when I ...

lose or overwrite my files!lose or overwrite my files! want to restore to an old version!want to restore to an old version! have to merge changes with another developerhave to merge changes with another developer!! need to compare differencesneed to compare differences!! need to find out who’s been messing with my need to find out who’s been messing with my

codecode!! have a shared component but it’s in several have a shared component but it’s in several

different placesdifferent places!!

“Someone may decide a day or two later that the changes should not have been made. With Visual SourceSafe, it's no problem-we just roll it back to the previous version," Brad Young, SPRY Webmaster

Page 4: Visual SourceSafe Seamless Integration. 2 Agenda  Version Control  Architecture  Features  Integration  Configuration & Maintenance  Questions.

““Version Control should be like air. Version Control should be like air. You don’t see it, but it’s always there You don’t see it, but it’s always there keeping you alive.”keeping you alive.”

Microsoft® Visual SourceSafe®Microsoft® Visual SourceSafe®

Page 5: Visual SourceSafe Seamless Integration. 2 Agenda  Version Control  Architecture  Features  Integration  Configuration & Maintenance  Questions.

5

SourceSafe UsageSourceSafe Usage

Source Code ControlSource Code Control Web ManagementWeb Management Document TrackingDocument Tracking Text or Binary FilesText or Binary Files

Page 6: Visual SourceSafe Seamless Integration. 2 Agenda  Version Control  Architecture  Features  Integration  Configuration & Maintenance  Questions.

6

Basic Purposes of Visual Basic Purposes of Visual SourceSafeSourceSafe

Version control systems in general...Version control systems in general... Support team development, by coordinating multiple Support team development, by coordinating multiple

users through a checkout/checkin protocolusers through a checkout/checkin protocol Track versions of filesTrack versions of files

SourceSafe’s competitive advantage...SourceSafe’s competitive advantage... Track versions of entire projectsTrack versions of entire projects Track modular code: one file that is reused, or shared, Track modular code: one file that is reused, or shared,

by multiple projectsby multiple projects

Page 7: Visual SourceSafe Seamless Integration. 2 Agenda  Version Control  Architecture  Features  Integration  Configuration & Maintenance  Questions.

Secure and scalableSecure and scalable Project orientedProject oriented Advanced yet easyAdvanced yet easy Manage Web sites, source code, and Manage Web sites, source code, and

ordinary documentsordinary documents Integration with Microsoft and third-party Integration with Microsoft and third-party

products products

Design ThemesDesign Themes

Page 8: Visual SourceSafe Seamless Integration. 2 Agenda  Version Control  Architecture  Features  Integration  Configuration & Maintenance  Questions.

8

Key SourceSafe ConceptsKey SourceSafe Concepts

All your files are stored in a centralized All your files are stored in a centralized database on the serverdatabase on the server

Any kind of filesAny kind of files can be stored in SourceSafe: can be stored in SourceSafe: code, DLLs, graphics, documents, help files, code, DLLs, graphics, documents, help files, icons, …icons, …

A A projectproject is a collection of files in the is a collection of files in the SourceSafe database, analogous to a folder in SourceSafe database, analogous to a folder in WindowsWindows

Page 9: Visual SourceSafe Seamless Integration. 2 Agenda  Version Control  Architecture  Features  Integration  Configuration & Maintenance  Questions.

9

Project OrientedProject Oriented Share filesShare files Synchronize changesSynchronize changes Project historyProject history

Reverse Delta StorageReverse Delta Storage Rapid file accessRapid file access Minimize disk spaceMinimize disk space Restore past versionsRestore past versions

Any Type ContentAny Type Content Source codeSource code Application componentsApplication components Web contentWeb content DocumentsDocuments

Architecture BenefitsArchitecture Benefits

Page 10: Visual SourceSafe Seamless Integration. 2 Agenda  Version Control  Architecture  Features  Integration  Configuration & Maintenance  Questions.

10

The SourceSafe ExplorerThe SourceSafe Explorer

Page 11: Visual SourceSafe Seamless Integration. 2 Agenda  Version Control  Architecture  Features  Integration  Configuration & Maintenance  Questions.

11

“Visual SourceSafe looks just like Windows Explorer, so there’s no learning curve at all…” Jamie MacLennan,Software Engineer ,Micrografx

Ease of UseEase of Use

Drag-and-drop functionality from Windows Drag-and-drop functionality from Windows ExplorerExplorer

Menus, toolbars, right-clickMenus, toolbars, right-click CustomizableCustomizable

Page 12: Visual SourceSafe Seamless Integration. 2 Agenda  Version Control  Architecture  Features  Integration  Configuration & Maintenance  Questions.

12

Visual SourceSafe, Editing Tools, Visual SourceSafe, Editing Tools, and the Working Folderand the Working Folder

You You storestore and and track track your files in your files in SourceSafe projectsSourceSafe projects

You You editedit and and compilecompile your files in your files in the “working folder” which your the “working folder” which your editing tools seeediting tools see

Your tool does not have to know Your tool does not have to know about SourceSafe, and vice-versa!about SourceSafe, and vice-versa!

Working Folder(e.g. C:\WORKING)

SourceSafeprojects

(eg $/A/B)

Page 13: Visual SourceSafe Seamless Integration. 2 Agenda  Version Control  Architecture  Features  Integration  Configuration & Maintenance  Questions.

13

The SourceSafe AdministratorThe SourceSafe Administrator

Page 14: Visual SourceSafe Seamless Integration. 2 Agenda  Version Control  Architecture  Features  Integration  Configuration & Maintenance  Questions.

14

AdministratorAdministrator

SecuritySecurity Read-Only UsersRead-Only Users Rights by ProjectRights by Project Rights by UserRights by User

OtherOther Exclusive CheckoutsExclusive Checkouts Archive / RestoreArchive / Restore Web ProjectsWeb Projects Shadow FoldersShadow Folders

Page 15: Visual SourceSafe Seamless Integration. 2 Agenda  Version Control  Architecture  Features  Integration  Configuration & Maintenance  Questions.

15

FeaturesFeatures

MergeMerge Visual Comparisons Visual Comparisons BranchingBranching PinningPinning ShadowingShadowing

PromotionPromotion ArchivingArchiving Security and Security and

AdministrationAdministration Web FeaturesWeb Features ReportingReporting

And many, many more ...

Page 16: Visual SourceSafe Seamless Integration. 2 Agenda  Version Control  Architecture  Features  Integration  Configuration & Maintenance  Questions.

16

The Four Key CommandsThe Four Key Commands

Get: Give me a local copy of a file or project in Get: Give me a local copy of a file or project in my working folder, read-only, to view or my working folder, read-only, to view or compilecompile

Check Out: Give me a local copy of a file or Check Out: Give me a local copy of a file or project, writable, to edit. (*May or may not be project, writable, to edit. (*May or may not be exclusive!)exclusive!)

Check In: Copy my edited file back into Check In: Copy my edited file back into SourceSafe, available to other users. (Stores SourceSafe, available to other users. (Stores old versions with old versions with reverse deltas.reverse deltas.))

Undo Check Out: Cancel my check out, voiding Undo Check Out: Cancel my check out, voiding all the changes I madeall the changes I made

Page 17: Visual SourceSafe Seamless Integration. 2 Agenda  Version Control  Architecture  Features  Integration  Configuration & Maintenance  Questions.

17

Other Important CommandsOther Important Commands

Create Project: Create a new projectCreate Project: Create a new project Add Files: Add files to a projectAdd Files: Add files to a project Delete: Delete a file or projectDelete: Delete a file or project Difference: Show me what changed in this Difference: Show me what changed in this

file or projectfile or project Share: Copy files from other projects into Share: Copy files from other projects into

the current projectthe current project History: Show me all the versions of this file History: Show me all the versions of this file

or projector project

Page 18: Visual SourceSafe Seamless Integration. 2 Agenda  Version Control  Architecture  Features  Integration  Configuration & Maintenance  Questions.

18

The Visual SourceSafe The Visual SourceSafe Command LineCommand Line

All SourceSafe functionalityAll SourceSafe functionality fully available from fully available from the command line (except some of the Web-the command line (except some of the Web-specific features)specific features)

Great for macros, batch files, and integration: Great for macros, batch files, and integration: also sometimes faster to use than the GUIalso sometimes faster to use than the GUI

Commands look like “SS Get FU.Cls” (means, Commands look like “SS Get FU.Cls” (means, “Get this file from the current project into my “Get this file from the current project into my current folder”)current folder”)

Page 19: Visual SourceSafe Seamless Integration. 2 Agenda  Version Control  Architecture  Features  Integration  Configuration & Maintenance  Questions.

19

Advanced Visual SourceSafe Advanced Visual SourceSafe

Web FeaturesWeb Features SharingSharing PinningPinning Branching/MergingBranching/Merging CustomizationCustomization The SourceSafe Command LineThe SourceSafe Command Line

Page 20: Visual SourceSafe Seamless Integration. 2 Agenda  Version Control  Architecture  Features  Integration  Configuration & Maintenance  Questions.

20

Other advanced featuresOther advanced features

““Keyword expansion” puts version control Keyword expansion” puts version control information directly into your source fileinformation directly into your source file

““Shadow folders” create a public share that Shadow folders” create a public share that echoes a SourceSafe projectechoes a SourceSafe project

““OLE Automation” lets you drive OLE Automation” lets you drive SourceSafe from VC++ or VBSourceSafe from VC++ or VB

Label Promotion allows you to retrofit a file Label Promotion allows you to retrofit a file to a previously applied labelto a previously applied label

Branching and Merging allows parallel Branching and Merging allows parallel development development

Page 21: Visual SourceSafe Seamless Integration. 2 Agenda  Version Control  Architecture  Features  Integration  Configuration & Maintenance  Questions.

21

SharingSharing

Sharing is how you track Sharing is how you track reusable filesreusable files Technically, sharing means that Technically, sharing means that one fileone file is in is in

multiple projectsmultiple projects at the same time at the same time All updates are automatically propagated, since All updates are automatically propagated, since

there is only one filethere is only one file There is no “master project”: all sharing projects There is no “master project”: all sharing projects

are peersare peers Use the Use the LinksLinks tab ( tab (OptionsOptions dialog) to track Shared dialog) to track Shared

filesfiles

Page 22: Visual SourceSafe Seamless Integration. 2 Agenda  Version Control  Architecture  Features  Integration  Configuration & Maintenance  Questions.

22

SharingSharing

““$/A and $/B share Fu.cls” … $/A and $/B share Fu.cls” … or…or…

““Fu.cls is Fu.cls is inin $/A and $/B” $/A and $/B”

In this picture, the file has 5 In this picture, the file has 5 versions. If versions. If eithereither project project checks in the file, checks in the file, bothboth projects projects will be on version 6.0will be on version 6.0

$/A $/B

5

4

3

2

1

Fu.cls

Page 23: Visual SourceSafe Seamless Integration. 2 Agenda  Version Control  Architecture  Features  Integration  Configuration & Maintenance  Questions.

23

Branching / MergingBranching / Merging

Release 1.0 Release 2.0

Release 1.1 (bugfix)

branch merge

Page 24: Visual SourceSafe Seamless Integration. 2 Agenda  Version Control  Architecture  Features  Integration  Configuration & Maintenance  Questions.

24

Visual MergeVisual Merge

Page 25: Visual SourceSafe Seamless Integration. 2 Agenda  Version Control  Architecture  Features  Integration  Configuration & Maintenance  Questions.

25

SourceSafe Web FeaturesSourceSafe Web Features

If you are using SourceSafe to manage your Web If you are using SourceSafe to manage your Web site…site…

““Deploy” copies your files to the live Web server Deploy” copies your files to the live Web server (via directory path or FTP)(via directory path or FTP)

““Check Hyperlinks” checks the validity of Check Hyperlinks” checks the validity of internal or external linksinternal or external links

““Create Site Map” creates an HTML site map you Create Site Map” creates an HTML site map you can post on your pagecan post on your page

Page 26: Visual SourceSafe Seamless Integration. 2 Agenda  Version Control  Architecture  Features  Integration  Configuration & Maintenance  Questions.

26

All Visual SourceSafe All Visual SourceSafe operations performed by operations performed by FrontPage® Server ExtensionsFrontPage® Server Extensions

No Visual SourceSafe No Visual SourceSafe client necessary client necessary on workstationson workstations

Authentication based on Authentication based on Web-server authenticationWeb-server authentication

Run NTFS!Run NTFS! Visual Visual SourceSafeSourceSafe

repositoryrepository

Check in and Check in and check outcheck out

FrontPage 97 Windows FrontPage 97 Windows Visual InterDev®Visual InterDev® FrontPage 97 Mac FrontPage 97 Mac

Web staging Web staging serverserver

HTTPHTTP

Web DevelopmentWeb Development

Page 27: Visual SourceSafe Seamless Integration. 2 Agenda  Version Control  Architecture  Features  Integration  Configuration & Maintenance  Questions.

27

Web SecurityWeb Security

Keep VSS integrated (development) on a different server than Keep VSS integrated (development) on a different server than the production serverthe production server

Web servers only respond to HTTP requests and cannot access Web servers only respond to HTTP requests and cannot access the VSS directories.the VSS directories.

No security breaches specific to VSSNo security breaches specific to VSS

Resources:Resources: Http://www.microsoft.com/workshop/server/feature/Http://www.microsoft.com/workshop/server/feature/

security.aspsecurity.asp Http://www.microsoft.com/FrontPage/wpp/serkHttp://www.microsoft.com/FrontPage/wpp/serk

Page 28: Visual SourceSafe Seamless Integration. 2 Agenda  Version Control  Architecture  Features  Integration  Configuration & Maintenance  Questions.

28

SourceSafe Integration into SourceSafe Integration into Editing EnvironmentsEditing Environments

““Integration” means you can execute SourceSafe Integration” means you can execute SourceSafe commands directly inside your editing commands directly inside your editing environment.environment.

SourceSafe commands are added to the SourceSafe commands are added to the application’s menus.application’s menus.

Developers can perform checkouts / checkins and Developers can perform checkouts / checkins and other operations without leaving the development other operations without leaving the development environment.environment.

Some less commonly used commands still require Some less commonly used commands still require the SourceSafe Explorer.the SourceSafe Explorer.

Page 29: Visual SourceSafe Seamless Integration. 2 Agenda  Version Control  Architecture  Features  Integration  Configuration & Maintenance  Questions.

29

Integrated ApplicationsIntegrated Applications

Microsoft Visual Basic®Microsoft Visual Basic® Microsoft Visual C++®Microsoft Visual C++® Microsoft Visual FoxPro®Microsoft Visual FoxPro® Microsoft Visual InterDev®Microsoft Visual InterDev® Microsoft Visual ModelerMicrosoft Visual Modeler Microsoft Visual J++®Microsoft Visual J++® Microsoft AccessMicrosoft Access Microsoft FrontPageMicrosoft FrontPage Third-Party ApplicationsThird-Party Applications

Page 30: Visual SourceSafe Seamless Integration. 2 Agenda  Version Control  Architecture  Features  Integration  Configuration & Maintenance  Questions.

30

Integration TechnologiesIntegration Technologies

Source Control APISource Control API SSCC.DLLSSCC.DLL Can be used by other SCC providers (e.g. PVCS)Can be used by other SCC providers (e.g. PVCS) Used by VB, VC ,VFPUsed by VB, VC ,VFP ..... .....

OLE AutomationOLE Automation Recommended methodRecommended method Used by FrontPage and Visual InterDevUsed by FrontPage and Visual InterDev

Page 31: Visual SourceSafe Seamless Integration. 2 Agenda  Version Control  Architecture  Features  Integration  Configuration & Maintenance  Questions.

31

Example - VFP IntegrationExample - VFP Integration

Page 32: Visual SourceSafe Seamless Integration. 2 Agenda  Version Control  Architecture  Features  Integration  Configuration & Maintenance  Questions.

32

Example - Visual InterDevExample - Visual InterDev

Page 33: Visual SourceSafe Seamless Integration. 2 Agenda  Version Control  Architecture  Features  Integration  Configuration & Maintenance  Questions.

33

Configuration and MaintenanceConfiguration and Maintenance

Database SizeDatabase Size AnalyzeAnalyze Backup strategiesBackup strategies Best PracticesBest Practices

Page 34: Visual SourceSafe Seamless Integration. 2 Agenda  Version Control  Architecture  Features  Integration  Configuration & Maintenance  Questions.

34

Database SizeDatabase Size

Should be < 3 GB Should be < 3 GB Unrelated projects can be in separate databasesUnrelated projects can be in separate databases Performance considerationsPerformance considerations Free disk space should be >= database sizeFree disk space should be >= database size How long does Analyze take?How long does Analyze take?

Page 35: Visual SourceSafe Seamless Integration. 2 Agenda  Version Control  Architecture  Features  Integration  Configuration & Maintenance  Questions.

35

AnalyzeAnalyze Should be run regularly (once per week or Should be run regularly (once per week or

month, depends on usage)month, depends on usage) Should be run on the serverShould be run on the server SwitchesSwitches

Run with no switches then review the output Run with no switches then review the output

- or -- or - Run with -f -d -c -v#Run with -f -d -c -v#

Needs disk spaceNeeds disk space

Page 36: Visual SourceSafe Seamless Integration. 2 Agenda  Version Control  Architecture  Features  Integration  Configuration & Maintenance  Questions.

36

Backup StrategiesBackup Strategies

Back up the Data directory Back up the Data directory Should be done regularlyShould be done regularly Full backup (not incremental)Full backup (not incremental) Do not restore over the currentDo not restore over the current directorydirectory SSARC can be used as a supplemental backupSSARC can be used as a supplemental backup

Page 37: Visual SourceSafe Seamless Integration. 2 Agenda  Version Control  Architecture  Features  Integration  Configuration & Maintenance  Questions.

37

Best PracticesBest Practices

Make sure you don’t run out of disk space !!Make sure you don’t run out of disk space !! Synchronize all clocks with the serverSynchronize all clocks with the server Use individualized working folders when Use individualized working folders when

doing multiuser developmentdoing multiuser development Bloated SS.INI files can cause slow Bloated SS.INI files can cause slow

performanceperformance Plan carefully, especially for sharing and Plan carefully, especially for sharing and

branchingbranching Make sure you don’t run out of disk space !!Make sure you don’t run out of disk space !!

Page 38: Visual SourceSafe Seamless Integration. 2 Agenda  Version Control  Architecture  Features  Integration  Configuration & Maintenance  Questions.

38

SummarySummary

Don’t lose your dataDon’t lose your data Protect any type of fileProtect any type of file Increase team productivityIncrease team productivity Version control can be transparentVersion control can be transparent

Page 39: Visual SourceSafe Seamless Integration. 2 Agenda  Version Control  Architecture  Features  Integration  Configuration & Maintenance  Questions.

39