GitHub桌面比较脚本



因此,我们有一个程序,至少在过去的三四年中,我们的'版本控制'每次都只是在日期stamp stamp stamp stamp stamp stamp stamp。我们做出改变。显然,这是不可持续的。最近,我们已经能够开始搬到GitHub的所有项目,我想对此做同样的事情。

不幸的是,保存的代码/项目的保存版本最终是XML文件的压缩版本,没有销售。比较并不容易。我找到了一种基于命令行进行比较的方法,与gitconfig和gitattribute更新和一些外部脚本进行了比较,并且在该环境中可以忍受。

,但是我们主要使用(企业)网站和GitHub桌面来满足我们的需求。而且这个过程似乎不适用于这些环境。

所以问题是 - 是否有任何方法可以在GitHub网页或GitHub桌面环境中设置脚本以进行比较?

供参考,我找到了Windows格式的命令行/git的页面是https://www.theorycrafter.org/quipu/quipu/order-to-chaos-version-contion-control-andtrol-and-transformations/和程序是kofax变换模块。

用github桌面修改二进制差异

Github桌面似乎没有能力直接从接口进行操作。您要做的是另外安装git,按照文章中的说明进行操作,然后从github桌面中单击"存储库">在Explorer中显示,然后右键单击该文件夹,然后在此处选择Git GUI,您可以使用它们来查看diffs。

KTM项目中粒状更改的外部文件

当您查看KTM项目文件(.fpr)的XML内容时,您会看到项目中的脚本,也可以看到项目定义的所有内部内容。有些人可能像字段一样可以理解,但是许多其他可能不是。无论哪种方式,您都无法选择性合并更改(如文章所述)。因此,从本质上讲,您仍然可以为每次更改进行整个项目的登机手续。如果您想更加细粒度,则可以考虑另一种方法,甚至可以考虑文章所建议的方法。

脚本:您可以将脚本复制到单独的文本文件,然后可以在它们上进行正常的差异和合并,因为您知道您可以将合并的脚本复制回中该项目。更新:KTM 6.1服务包1(6.1.1)向代码窗口引入菜单选项以轻松执行此操作(工具>保存所有脚本)。

定位器:项目构建器允许您将特定定位器的配置导出/导入到文件中。但是,您将无法进行差异或合并,但是,如果您确定定位器在一定的更改后产生较差的结果,则可以从先前的登机手续中导入特定的定位器,而不是恢复整个项目。<<<<<<<<<<<<

程序化方法:可以调用下面的脚本函数来导出每个包含类脚本的类的文件,以及每个定位器脚本定位器的导出,但它们也不导出'T具有很大的配置:它们背后的脚本包含在其类脚本中。您可以根据需要运行该功能,但是为了简单起见,我的建议是每次测试项目构建器中的文档时都可以运行。因此,每当您测试提取文档时,这些外部文件都是最新的,并且可以进行任何更改。

Public Sub Design_ExportScriptAndLocators()
   Dim ClassIndex As Long
   Dim Path As String
   ' You could hard code a path if you did not want to use script variables
   Path=Project.ScriptVariables("Dev_ExportPath")
   ' Make sure you've added the Microsoft Scripting Runtime reference
   Dim fso As New Scripting.FileSystemObject
   If Not fso.FolderExists(Path) Then Exit Sub
   ' Here we use class index -1 to represent the special case of the project class
   For ClassIndex=-1 To Project.ClassCount-1
      Dim KTMClass As CscClass, ClassName As String, ScriptCode As String
      ' Get the script of this class
      If ClassIndex=-1 Then
         Set KTMClass=Project.RootClass
         ScriptCodPe=Project.ScriptCode
      Else
         Set KTMClass=Project.ClassByIndex(ClassIndex)
         ScriptCode=KTMClass.ScriptCode
      End If
      ' Get the name of the class
      ClassName=IIf(ClassIndex=-1,"Project",KTMClass.Name)
      ' Export script to file
      Dim ScriptFile As TextStream
      Set ScriptFile=fso.CreateTextFile(Path & "Script-" & ClassName & ".txt",True,False)
      ScriptFile.Write(ScriptCode)
      ScriptFile.Close()
      ' Export locators (same as from Project Builder menus)
      Dim FileName As String
      Dim LocatorIndex As Integer
      For LocatorIndex=0 To KTMClass.Locators.Count-1
         If Not KTMClass.Locators.ItemByIndex(LocatorIndex).LocatorMethod Is Nothing Then
            FileName="" & ClassName & "-" & KTMClass.Locators.ItemByIndex(LocatorIndex).Name & ".loc"
            KTMClass.Locators.ItemByIndex(LocatorIndex).ExportLocatorMethod(Path & FileName,Path)
         End If
      Next
   Next
End Sub

示例调用当项目构建器中测试文档提取时:

Private Sub Document_AfterExtract(ByVal pXDoc As CASCADELib.CscXDocument)
   ' Only when run in Project Builder...
   If Project.ScriptExecutionMode=CscScriptExecutionMode.CscScriptModeServerDesign Then
      ' Update external script and locator files added to source control
      Design_ExportScriptAndLocators()
   End If
End Sub

没有一个完美的解决方案来存储KTM项目或KC批处理类在源控件中像简单的代码一样好,但是至少这使您有更多的粒度来查看签入了哪些更改,并能够使用更多更改来恢复更改粒度。

最新更新