"Ekle" eylem için bir geçici çözüm, projenin öğeleri önceki sürümünde söz konusu sürümün karşılaştırmak almaktır. Geçerli sürüm ve önceki sürüm ne olursa olsun dosyasıdır eklenen dosyadır.
Not: Bu yordam, Microsoft Visual Basic kullanır, ancak başka dillerde de aynı yapılabilir.
Visual Basic'te bir Standart EXE proje yarat
Bir Microsoft SourceSafe 6.0 (veya 5.0) başvuru kitaplığı (Ssapi.dll) oluşturun.
Bir komut düğmesi Form1'e ekleyin.
Düğmeyi çift tıklatın.
Command1_Click Sub ' aşağıdaki kodu yapıştırın:
Dim SSDB As New VSSDatabase
Dim SSItem As VSSItem
Dim TempItem As VSSItem
Dim oVersion As VSSVersion
Dim verDate As Date
Dim User As String
Dim Comment As String
Dim Action As String
' Open SourceSafe database
' NOTE: If your path to srcsafe.ini, username, and password information
' differ from what is listed below, please adjust it accordingly.
SSDB.Open "C:\Program Files\Microsoft Visual Studio\Common\VSS\srcsafe.ini", "Admin", ""
' Get project to search
Set SSItem = SSDB.VSSItem("$/Project_To_Retrieve_History")
' Loop through the Versions collection getting each event
For Each oVersion In SSItem.Versions(VSSFlags.VSSFLAG_RECURSYES)
' Get the action for the current version
Action = oVersion.Action
' Check what the action is and print out what we find.
If InStr(1, Action, "Added", vbTextCompare) > 0 Then
' Get the VSSItem the version contains
Set TempItem = oVersion.VSSItem
' Get the date, username, and comment from the version item.
verDate = oVersion.Date
User = oVersion.UserName
Comment = oVersion.Comment
' Print out the item we have
Debug.Print "Added: " & TempItem.Name & " by " & User & " at " & Format(verDate, "General Date") & Comment
End If
Next
Programı çalıştırın.
Yukarıda belirtilen geçici çözümü uygulamak için <a0></a0>, aşağıdaki yapıştırın (yalnızca Command1_Click alt olduğunu unutmayın):
Dim SSDB As New VSSDatabase
Dim SSItem As VSSItem
Dim TempItem As VSSItem
Dim oVersion As VSSVersion
Dim verDate As Date
Dim User As String
Dim Comment As String
Dim Action As String
Dim tItem As VSSItem
Dim oItem As VSSItem
Dim bad As Boolean
Dim sTempItem As VSSItem
Private Sub Command1_Click()
' Open SourceSafe database
' NOTE: If your path to srcsafe.ini, username, and password information
' differ from what is listed below, please adjust it accordingly.
SSDB.Open "C:\Program Files\Microsoft Visual Studio\Common\VSS\srcsafe.ini", "Admin", ""
' Get project to search
Set SSItem = SSDB.VSSItem("$/Project_To_Retrieve_History")
' Loop through the Versions collection getting each event
For Each oVersion In SSItem.Versions(VSSFlags.VSSFLAG_RECURSYES)
' Get the action for the current version
Action = oVersion.Action
' Check what the action is and print out what we find.
If InStr(1, Action, "Added", vbTextCompare) > 0 Then
' Get the VSSItem the current version contains
Set TempItem = oVersion.VSSItem
' Get the date, username, and comment from the version item.
verDate = oVersion.Date
User = oVersion.UserName
Comment = oVersion.Comment
' See if we can use the Items collection
If CheckItem = 1 Then
' If we have a project and the items collection has items, print out each item in the collection.
' We could have an items collection but have 0 items in it, so check for that case.
If TempItem.Type = VSSItemType.VSSITEM_PROJECT And TempItem.Items.Count > 0 Then
' Get the previous version
Set sTempItem = TempItem.Version(TempItem.VersionNumber - 1)
' Loop through the items at this version
For Each tItem In TempItem.Items
bad = False
' Loop through the previous version
For Each oItem In sTempItem.Items
' Check if the names are the same
If oItem.Spec = tItem.Spec Then
' Found the name, not the one we are looking for
bad = True
Exit For
End If
Next
' If this is the file added, print out the information
If bad = False Then
Debug.Print "Added: " & tItem.Name & " in " & TempItem.Name & " by " & User & " at " & Format(verDate, "General Date") & Comment<BR/>
Exit For
End If
Next
Else
' Otherwise just print out the item we have
Debug.Print "Added: " & TempItem.Name & " by " & User & " at " & Format(verDate, "General Date") & Comment
End If
Else
' No items collection, just print out the item we have
Debug.Print "Added: " & TempItem.Name & " by " & User & " at " & Format(verDate, "General Date") & Comment
End If
End If
Next
End Sub
'*****************************************************
' Purpose: Check to see if we can look at the Items
' collection. This keeps us from getting an
' error from SourceSafe.
'
' Inputs: None
'
' Returns: 1 if the Items collection exists and can be used.
' 0 if the Items collection does not exist.
'
'*****************************************************
Private Function CheckItem()
' If we have a problem, go to the error handler
On Error GoTo ErrHandler
' Try to access the Items collection and see if we succeed or not
Dim i As Integer
i = TempItem.Items.Count
' It worked, so return 1
CheckItem = 1
Exit Function
ErrHandler:
' Return 0 - meaning there is a problem
CheckItem = 0
End Function
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:248078
(http://support.microsoft.com/kb/248078/en-us/
)
Bu makaleyi kullanmak için ne kadar kişisel çaba harcadınız?
Çok az
Az
Orta
Fazla
Çok fazla
Bu bilgiyi geliştirmemiz için nedenleri ve bu konuda neler yapabileceğimizi paylaşın
Teşekkürler! Görüşleriniz, destek içeriğimizi geliştirmemize yardımcı olmak için kullanılmaktadır. Diğer yardım seçenekleri için, lütfen Yardım ve Destek Giriş Sayfasını ziyaret edin.