请参阅 VSTS 中的一个文件夹,该文件夹包含我的项目构建文件中的本地常春藤存储库
Posted
技术标签:
【中文标题】请参阅 VSTS 中的一个文件夹,该文件夹包含我的项目构建文件中的本地常春藤存储库【英文标题】:Refer a folder in VSTS which houses a local ivy repository from my project build file 【发布时间】:2018-08-22 21:33:55 【问题描述】:我是 VSTS 的新手,所以这个问题可能看起来微不足道。 我有一个基于 ant 的 java 项目,其中 apache ivy 用于依赖解析。 大多数 jar 依赖项都是从公共存储库中解析的,例如Maven 等。有一些依赖项不容易获得,因此我为这些实例设置了一个本地常春藤存储库。
我正在考虑将我的整个代码库移动到 VSTS Git 存储库并使用 Jenkins 构建我的应用程序。这应该是直截了当的,到目前为止,我似乎遇到的唯一障碍是,对于基于本地文件系统的本地存储库,如何在 VSTS 中保持相同?
我可以在 VSTS 中创建一个文件夹并将我所有的本地 ivy 存储库内容存放在那里,并以某种方式从我的代码(ivy 设置文件)中引用该 VSTS 位置吗?或者有没有更优雅的方法来做到这一点。
我可以通过代码库将本地 repo 文件夹放入并将文件夹上传到 VSTS Git,但我正在寻找一种解决方案,每次有人克隆我的 VSTS Git 代码库时,不应克隆和下载本地 repo 内容.
有人可以帮忙吗?
【问题讨论】:
【参考方案1】:要将本地的ivy repo管理到VSTS git repo,只需将本地repo中的所有文件commit并推送到VSTS git repo即可(无需手动上传下载)。
针对不同情况的详细步骤如下,你可以按照你遇到的任何情况:
情况1:本地的ivy repo也是git repo,你想在VSTS git repo中管理
由于 ivy repo 已经是本地 git repo,您只需添加 VSTS repo 作为本地 repo 的远程,然后提交并推送更改到远程 repo(VSTS git repo):
# In you local ivy repo
git remote add origin <URL for VSTS git repo> -f
# make sure all the changes are committed
git push origin --all -f
情况2:如果VSTS git repo中管理了其他文件,您想将本地ivy repo中的文件添加到VSTS git repo中
如果本地 ivy repo 中的文件只是 VSTS git repo 中文件的一部分(您需要保留 VSTS git repo 的提交历史记录),则应首先在本地克隆 VSTS git repo,然后复制文件从常春藤仓库到克隆的本地仓库,然后提交和推送。详细命令如下:
# In a directory
git clone <URL for VSTS git repo>
cd reponame
# copy all the files from local ivy repo here
git add .
git commit -m 'add all the files from ivy repo to VSTS git repo'
git push
之后,当您需要对本地文件进行更改时,只需在本地repo中修改文件,然后提交并推送到远程repo(VSTS git repo)。
【讨论】:
感谢玛丽娜的回答。或者,您是否认为有一种方法可以不使用本地 ivy 存储库作为 git 存储库,而是可能以另一种方式在 vsts 上托管它(如共享目录),以便在我构建我的实际代码时可以引用它詹金斯在 vsts 上? 对于 git repo 的工作流程,建议先在本地 repo 工作并提交,然后再推送到远程 repo。所以你可以单独开发自己的作品,尤其是多个开发者一起工作。以上是关于请参阅 VSTS 中的一个文件夹,该文件夹包含我的项目构建文件中的本地常春藤存储库的主要内容,如果未能解决你的问题,请参考以下文章
VSTS Drop Single Artifact - 发布到 Azure 多个网站