Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Version control 如何在Xilinx Vitis IDE项目中使用Mercurial_Version Control_Mercurial_Tcl_Xilinx - Fatal编程技术网

Version control 如何在Xilinx Vitis IDE项目中使用Mercurial

Version control 如何在Xilinx Vitis IDE项目中使用Mercurial,version-control,mercurial,tcl,xilinx,Version Control,Mercurial,Tcl,Xilinx,我从Xilinx开始在Vitis IDE下开发软件,我发现了一个关于源代码版本控制的问题(在Mercurial中)。Vitis IDE中的源代码可分为两部分: 应用程序代码,完全由软件开发人员控制 所谓的平台代码(用于外围设备、bsp和操作系统的驱动程序),是根据 通过tcl脚本在特殊的硬件相关xsa文件上 基于此,我决定对以下文件进行版本控制: 应用程序源文件(.c、.h) xsa文件 tcl脚本 因此,我创建了一个名为RESOURCES的存储库,其结构如下: hw_config-包

我从Xilinx开始在Vitis IDE下开发软件,我发现了一个关于源代码版本控制的问题(在Mercurial中)。Vitis IDE中的源代码可分为两部分:

  • 应用程序代码,完全由软件开发人员控制
  • 所谓的平台代码(用于外围设备、bsp和操作系统的驱动程序),是根据 通过tcl脚本在特殊的硬件相关xsa文件上
基于此,我决定对以下文件进行版本控制:

  • 应用程序源文件(.c、.h)
  • xsa文件
  • tcl脚本
因此,我创建了一个名为RESOURCES的存储库,其结构如下:

  • hw_config-包含xsa文件
  • 脚本-包含tcl脚本
  • src-包含应用程序的源文件
基于资源库的内容,tcl脚本在工作区目录中以以下结构创建Xilinx Vitis工作区:

  • 应用程序代码(使用参考资料中的src副本)
  • 平台代码

这种方法有一个严重的缺点,即应用程序源代码的更改是在工作区中完成的,但只有资源处于版本控制之下。因此,有必要将更改从工作区复制到资源中,以便能够提交它们。我认为这很不舒服,而且容易出错。所以我一直在想一些更好的解决办法。我有一个想法,准备一些脚本,它将监视工作区中的更改,如果发现任何更改,它将启动将工作区的内容复制到资源中。你认为这是个好方法吗?提前感谢您的建议。

我还注意到Vitis目前在源文件的版本控制方面是垃圾。在Vivado SDK中,可能将源代码文件放在修订控制下的工作区目录中。当我将现有项目升级到Vitis时,我注意到Vitis在项目创建期间(使用xsct)删除了所有源文件

但Vitis支持链接的源文件,如下所述:


但是在我当前的项目中,我遇到了这样一个问题,即这样一个链接的GNU链接器文件(lscript.ld)在链接过程中会导致错误。

您能更清楚地描述一下目录的树结构吗?通常将您正在进行更改的区域(术语中的工作区)置于版本控制之下。“用另一种方法来做很容易出错,而且很奇怪。”多纳尔·费罗斯我同意你的看法。我这样做的原因是,工作区是基于xsa文件和源文件通过tcl脚本自动生成的。您能否显示任何严重退化项目的完整树(带文件)(应用程序代码中的一个|两个文件,平台代码中的一个驱动程序|操作系统)?我就是不明白,为什么你必须将构建的文物复制到源代码中,请考虑从论坛链接中添加相关的文本到你的答案。它可以帮助访问者在将来链接失效的情况下使用。顺便说一下,欢迎来到stack overflow!