2015-02-23 77 views
0

在我们的课程中,我们有一个根文件夹'course_name',其中的文件夹,每个学生一个名为'student_id'的文件夹。每个学生都有多个实验室,但在给一个实验室打分时,我想查看course_name/student_id/lab_name用一个请求更新多个svn子文件夹

目前,我们首先检查立即深度以获取学生文件夹(但不是实验室文件夹),然后执行svn up <list of student lab folders>,但每次都会向服务器创建一个新请求。是否可以通过一个请求来完成?

回答

0

颠覆要做的稀疏检出这可以很容易地签出库的根没有得到文件吨的能力:

$ svn co --depth=immediates http://server/course_name 

这将签course_name,并且在所有学生的名字它,但不会检查实验室。为了得到一个特定的实验室,你可以这样做:

$ cd course_name 
$ svn up student_name/lab_name 

如果您想为某个学生所有的实验室,你可以这样做:

$ svn up --set-depth=infinity student_name 

--set-depth=infinity允许你检查所有文件在那棵树上。

即使你有几百名学生,每个学生有20到30个实验室,但我无法想象结账整个course_name会花费那么多时间。对我个人而言,我可能只需结账整个course_name,这样,我就拥有了所有的学生和他们的实验室。随着新的实验室进来,我会做svn up并得到它们。 Subversion不会花费一两分钟时间。

+0

这不是我想要做的 - 正如我在我的问题中提到的,我们首先立即结帐,然后更新相应的实验室和子文件夹。问题是当你说'svn up student1/lab student2/lab'时,有两个请求发送到服务器,两个不同的更新。我想一次完成它们,以避免为每个学生做一次更新。目前需要几分钟时间,我希望能缩短这个时间。我个人保留自己的整个回购副本,但是这尤其是对实验室评分,在这里你不想浪费时间检查所有实验室 – asymptotically 2015-02-24 07:10:46

+0

我无法理解你对_wasting time_的关注。结帐**整个存储库需要多长时间?我刚刚在90秒内检出了超过9000个文件的150Mb工作目录。保留工作副本,并且每当学生完成一个实验室时,你就会做一个'svn up',我敢打赌更新不到一分钟。我正在考虑在回购中做一个'svn ls -R',在实验室中'grep',并且把这个传递给'xargs svn up',但是你不会节省任何时间。 – 2015-02-24 15:52:29

+0

更新没问题 - 但并不是所有课程人员都像我一样保留整个存储库,而且我们都为我们负责的实验室运行分级器。我们还需要检查多个修订版,以延迟处罚评分,这意味着我们必须执行多个结帐。 – asymptotically 2015-02-25 02:03:08