一种文件处理方法和装置与流程

文档序号:11154537阅读:479来源:国知局
一种文件处理方法和装置与制造工艺

本发明涉及软件技术领域,特别是涉及一种文件处理方法和一种文件处理装置。



背景技术:

在软件开发时,代码开发完成后要进行发布操作,对于服务端而言就是将开发的代码部署到线上服务器上。

但是,在代码开发过程中,有一些项目的代码文件是多个程序员合作开发的,不同程序员开发同一个代码文件就可能出现代码文件未完善就上线的问题,导致上线程序出现错误,影响线上服务器的正常运行。

例如,两个程序员合作开发一个项目,程序员A修改了文件a.txt并提交到远程主库master上准备上线,但是由于某些原因导致未上线。此时程序员B也要修改文件a.txt,但是B可能没有注意到A也修改了这个代码文件,B修改完成后就将a.txt上线了,导致程序员A的修改也就被带上线了,导致可能出现bug产生,影响线上服务器的正常运行。



技术实现要素:

鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的文件处理方法和相应的文件处理装置。

依据本发明实施例的一个方面,提供了一种文件处理方法,包括:接收到文件上传命令时,获取用户上传的代码文件,其中,所述文件上传命令用于上传代码文件到远程主库master;对所述代码文件执行加锁操作,锁定所述代码文件,其中,将上传所述代码文件的用户作为锁定用户,则锁定的代码文件禁止非锁定用户发布;将锁定的代码文件上传到master;依据所述锁定用户针对锁定的代码文件的发布操作,解除对代码文件的锁定。

可选的,所述接收到文件上传命令时,获取用户上传的代码文件,包括:接收到文件上传命令时,触发脚本调用钩子程序;采用所述钩子程序获取用户上传的代码文件,以及所述代码文件的文件信息。

可选的,对所述代码文件执行加锁操作,包括:依据所述文件信息确定所述锁定用户的锁记录。

可选的,依据所述文件信息确定所述锁定用户的锁记录,包括:判断所述锁定用户是否具有锁记录;若所述锁定用户具有锁记录,则将所述文件信息添加到所述锁定用户的锁记录中。

可选的,其中,还包括:若所述锁定用户不具有锁记录,则建立所述锁定用户的锁记录,在所述锁定用户的锁记录中添加所述文件信息。

可选的,依据所述锁定用户针对锁定的代码文件的发布操作,解除对代码文件的锁定,包括:判断所述锁定用户从master将锁定的代码文件发布到线上服务器后,解除对代码文件的锁定。

可选的,解除对代码文件的锁定,包括:从所述锁定用户的锁记录中删除所述代码文件的文件信息。可选的,所述的方法还包括:对上线目录进行转换,确定上线的代码文件,从所述上线的代码文件中确定锁定的代码文件。

可选的,获取用户上传的代码文件之后,所述的方法还包括:判断所述代码文件是否被锁定;若代码文件已被锁定,拒绝执行对锁定的代码文件的上传操作。

根据本发明实施例的另一个方面,提供了一种文件处理装置,包括:获取模块,用于接收到文件上传命令时,获取用户上传的代码文件,其中,所述文件上传命令用于上传代码文件到远程主库master;锁定模块,用于对所述代码文件执行加锁操作,锁定所述代码文件,其中,将上传所述代码文件的用户作为锁定用户,则锁定的代码文件禁止非锁定用户发布;上传模块,用于将锁定的代码文件上传到master;解锁模块,用于依据所述锁定用户针对锁定的代码文件的发布操作,解除对代码文件的锁定。

可选的,所述获取模块,包括:触发子模块,用于接收到文件上传命令时,触发脚本调用钩子程序;文件获取子模块,用于采用所述钩子程序获取用户上传的代码文件,以及所述代码文件的文件信息。

可选的,所述锁定模块,用于依据所述文件信息确定所述锁定用户的锁记录。

可选的,所述锁定模块,包括:判断子模块,用于判断所述锁定用户是否具有锁记录;记录锁定子模块,用于在所述锁定用户具有锁记录时,将所述文件信息添加到所述锁定用户的锁记录中。

可选的,所述记录锁定子模块,还用于在所述锁定用户不具有锁记录时,建立所述锁定用户的锁记录,在所述锁定用户的锁记录中添加所述文件信息。

可选的,所述解锁模块,用于判断所述锁定用户从master将锁定的代码文件发布到线上服务器后,解除对代码文件的锁定。

可选的,所述解锁模块,用于从所述锁定用户的锁记录中删除所述代码文件的文件信息。

可选的,所述解锁模块,还用于对上线目录进行转换,确定上线的代码文件,从所述上线的代码文件中确定锁定的代码文件。

可选的,所述的方法还包括:加锁判断模块,用于判断所述代码文件是否被锁定;若代码文件已被锁定,拒绝执行对锁定的代码文件的上传操作。

在接收到文件上传命令时获取用户上传的代码文件,然后锁定该上传的代码文件,从而除锁定代码文件的用户外,其他非锁定用户均无法发布该锁定的代码文件,然后将锁定的代码文件上传到master,在锁定用户将锁定的代码文件发布上线后,再接触对代码文件的锁定,保证在代码文件上传到master后不会被其他用户上线,防止由于误上线代码文件而导致的上线安全问题。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1示出了根据本发明一个实施例的一种文件处理方法实施例的步骤流程图;

图2示出了根据本发明另一个实施例的一种文件处理方法实施例的步骤流程图;

图3示出了根据本发明一个实施例的一种文件处理装置实施例的结构框图;以及

图4示出了根据本发明另一个实施例的一种文件处理装置实施例的结构框图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

程序员在开发项目过程中,可以依据需求修改代码文件,在代码文件修改完毕后,可以上传到发布系统的远程主库master,准备上线。但是多人开发同一项目时可能存在误上传修改中的代码文件的问题。为了防止多人开发同一项目时,误上线其他程序员修改中的代码文件而导致的上线安全问题,本实施例可以通过代码文件上传master时加锁来防止其他程序员误上线。

参照图1,示出了根据本发明一个实施例的一种文件处理方法实施例的步骤流程图,具体可以包括如下步骤:

步骤102,接收到文件上传命令时,获取用户上传的代码文件,其中,所述文件上传命令用于上传代码文件到远程主库master。

本实施例采用在代码文件上传master时加锁的方式,使得锁定的代码文件不能被其他用户上线,从而防止出现问题。其中,文件上传命令用于上传代码文件到发布系统的master,本实施例可以在接收到文件上传命令时,获取用户要上传的代码文件。

例如,基于git进行软件开发时,git提供了一种钩子机制,可指定执行某个命令时触发某个脚本的执行,因此实施例可以指定执行文件上传命令时触发加锁脚本的执行,即加锁的时机是在push到远程时,即在pre-push时在脚本中进行加锁操作。其中,Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。

步骤104,对所述代码文件执行加锁操作,锁定所述代码文件,其中,将上传所述代码文件的用户作为锁定用户,则锁定的代码文件禁止非锁定用户发布。

步骤106,将锁定的代码文件上传到master。

对该代码文件执行加锁操作,即添加代码文件的文件锁来锁定所述代码文件,其中代码文件的锁定与用户绑定,即上传代码文件的用户即为锁定代码文件的用户,从而定义锁定的代码文件禁止其他用户(即非锁定用户)发布到线上服务器,即禁止代码文件被非锁定用户上线。在代码文件锁定后,可将锁定的代码文件上传到master。

步骤108,依据所述锁定用户针对锁定的代码文件的发布操作,解除对述代码文件的锁定。

锁定用户在上传的代码文件没有问题后,可以将代码文件发布上线,即锁定用户可执行对锁定的代码文件的发布操作,将该代码文件发布到线上服务器中,在代码文件上线成功后,解除对该代码文件的锁定。其他用户可以修改该代码文件上传到master。

例如,基于git用户A和用户B合作开发一个项目,其中代码文件a.txt用户A和B各自开发部分内容。用户A对该代码文件a.txt进行修改后,发送文件上传命令以上传到master,在接收到文件上传命令pre-push时获取该a.txt,将该a.txt执行加锁操作锁定a.txt,然后将文件a.txt上传到master。在文件a.txt被用户A上传到master,但未上线的过程中,若用户B也修改了代码文件a.txt要上传到master,在接收到用户B的上传命令时,获取该代码文件a.txt及其文件信息,判断该代码文件a.txt已被锁定,则拒绝用户B的文件上传指令,还可以提示用户B:用户A已上传该文件到master,请等待用户A上线该文件后再上传等提示信息。用户A在测试代码文件a.txt没有问题,可以将代码文件a.txt发布到线上服务器,在代码文件a.txt上线成功后,解锁该代码文件a.txt。此后用户B可执行文件上传命令。

综上,在接收到文件上传命令时获取用户上传的代码文件,然后锁定该上传的代码文件,从而除锁定代码文件的用户外,其他非锁定用户均无法发布该锁定的代码文件,然后将锁定的代码文件上传到master,在锁定用户将锁定的代码文件发布上线后,再接触对代码文件的锁定,保证在代码文件上传到master后不会被其他用户上线,防止由于误上线代码文件而导致的上线安全问题。

本实施例对上传到master的代码文件加锁,以防止误上线,因此加锁的时机可在上传代码文件即push master时,因为一旦推到远端master,其他程序员如果上线这个代码文件就会把修改带上去,因此在push master的时候加锁和检查锁是比较合理的。将代码文件push master时,如果检测到该代码文件没加锁,则执行加锁操作锁定该代码文件后上传;如果检测到该代码文件已经加锁了,表征之前有用户修改了该代码文件但是没有进行上线操作,此时不能将该代码文件push master,需要等待锁定用户将该锁定发的代码文件上线并接触锁定后,再将自己修改的代码文件push master。

参照图2,示出了根据本发明另一个实施例的一种文件处理方法实施例的步骤流程图,具体可以包括如下步骤:

步骤202,接收到文件上传命令时,触发脚本调用钩子程序。

步骤204,采用所述钩子程序获取用户上传的代码文件,以及所述代码文件的文件信息。

在接收到到文件上传命令时,触发脚本调用钩子程序,采用钩子程序获取用户上传的代码文件,并获取该代码文件的文件信息,文件信息可以包括文件名称、文件标识等。如基于git进行软件开发时,git提供了一种钩子机制,可指定执行某个命令时触发某个脚本的执行,因此实施例可以指定执行文件上传命令时触发加锁脚本的执行,即加锁的时机是在push到远程时,即在pre-push时在脚本中进行加锁操作。

步骤206,判断所述代码文件是否被锁定。

在获取到代码文件后,判断该代码文件是否已被锁定,即可判断该代码文件的文件信息是否在某一锁记录中,若已存储在某一锁记录中,则表征该代码文件已被锁定,执行步骤208;若不存在该文件信息对应锁记录,表征该代码文件未被锁定,执行步骤210。

步骤208,拒绝执行对锁定的代码文件的上传操作。

若判断代码文件已被锁定,可拒绝执行对锁定的代码文件的上传操作。并且可以反馈上传失败、该文件已XX被锁定等提示信息,来提示用户该文件暂时无法上传,需要等锁定用户解锁后再处理。

本实施例中,在锁定用户的锁记录中配置文件信息来表征代码文件被锁定,因此在代码文件未被锁定时,可以依据所述文件信息确定所述锁定用户的锁记录,来锁定该代码文件。

步骤210,判断所述锁定用户是否具有锁记录。

本实施例中,锁记录与用户绑定,即一个用户对应一个锁记录,一个锁记录可以对应有文件列表,在该文件列表中存储锁定代码文件的文件信息。因此在判断在代码文件未被锁定时,判断上传该代码文件的用户即锁定用户是否具有锁记录。如果该锁定用户具有锁记录,执行步骤212;如果该锁定用户不具有锁记录,执行步骤214。

步骤212,将所述文件信息添加到所述锁定用户的锁记录中。

若所述锁定用户具有锁记录,则将所述文件信息添加到所述锁定用户的锁记录的文件列表中,即采用脚本在该锁定用户的锁记录中添加该代码文件的文件信息。

步骤214,建立所述锁定用户的锁记录,在所述锁定用户的锁记录中添加所述文件信息。

若所述锁定用户不具有锁记录,则建立所述锁定用户的锁记录,在所述锁定用户的锁记录中添加所述文件信息。

步骤216,将锁定的代码文件上传到master。

步骤218,判断所述锁定用户从master将锁定的代码文件发布到线上服务器后,解除对代码文件的锁定。

锁定用户在测试锁定的代码文件通过后,可以从master将锁定的代码文件发布到线上服务器,在该锁定的代码文件上线成功后,可以解除对代码文件的锁定。其中,解除对代码文件的锁定,包括:从所述锁定用户的锁记录中删除所述代码文件的文件信息。可以获取该锁定用户的锁记录,然后从该锁记录的文件列表中删除该代码文件的文件信息。

其中,还包括:对上线目录进行转换,确定上线的代码文件,从所述上线的代码文件中确定锁定的代码文件。即上线代码文件较多等情况下,可能存在上线目录,如果存在上线目录可以进一步进行转化,确定上线的代码文件,从所述上线的代码文件中确定锁定的代码文件,然后从对应锁定用户的锁记录中删除该文件信息。

例如,基于git用户A和用户B合作开发一个项目,其中代码文件a.txt用户A和B各自开发部分内容。用户A对该代码文件a.txt进行修改后,发送文件上传命令以上传到master,在接收到文件上传命令pre-push时,触发脚本调用钩子程序获取该a.txt,然后可判断a.txt是否已被锁定,即a.txt的文件信息是否再某一锁记录中,若没有在锁记录中即a.txt未锁定,可采用该脚本执行加锁操作。可以判断用户A是否存在锁记录如Lock_A,若存在该锁记录Lock_A,则可以将该代码文件a.txt的文件信息添加到Lock_A中;若不存在该锁记录Lock_A,则创建用户A的锁记录Lock_A,将该代码文件a.txt的文件信息添加到Lock_A中,然后将文件a.txt上传到master。

在文件a.txt被用户A上传到master,但未上线的过程中,若用户B也修改了代码文件a.txt要上传到master,在接收到用户B的上传命令pre-push时,获取该代码文件a.txt及其文件信息,判断该代码文件a.txt的文件信息已存储在用户A的锁记录Lock_A中,即代码文件a.txt已被锁定,则拒绝用户B的文件上传指令,还可以提示用户B:用户A已上传该文件到master,请等待用户A上线该文件后再上传等提示信息。

用户A在测试代码文件a.txt没有问题,可以将代码文件a.txt发布到线上服务器,在代码文件a.txt上线成功后,从用户A的锁记录Lock_A中删除a.txt的文件信息,此后用户B可执行文件上传命令。若用户A的锁记录Lock_A中无其他文件,则删除该锁记录Lock_A,以后需要时再创建即可。

本实施例实现了基于文件的锁机制。一个用户保持一个锁记录,如果当前该用户没有锁记录,加锁操作时插入一条该用户的锁记录,如果当前用户已经有一条没有解锁的锁记录,则直接在该锁记录中添加即可。其中,在软件开发过程中,往往上传到master的是项目的一系列文件,因此可以这些文件的文件信息构成一个文件列表,将要加锁的文件列表添加到已经存在的锁记录当中,解锁时在该锁定用户的锁记录的文件列表中,把需要解锁的文件列表删除出去。

从而在push操作执行时对修改的文件进行加锁操作,在上线完成之后,对上线成功的文件进行解锁操作,将上线成功的文件列表在锁记录的文件列表中去除掉。其中,在解锁文件时涉及到文件列表file_list的设计,文件列表file_list都是文件,则直接从锁记录中删除即可,如果file_list有目录则需要做一步转化操作,全都转换成文件,然后从锁记录中删除。

对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。

在上述实施例基础上,本实施例还提供了一种文件处理装置。

参照图3,示出了根据本发明一个实施例的一种文件处理装置实施例的结构框图,具体可以包括如下模块:

获取模块302,用于接收到文件上传命令时,获取用户上传的代码文件,其中,所述文件上传命令用于上传代码文件到远程主库master。

锁定模块304,用于对所述代码文件执行加锁操作,锁定所述代码文件,其中,将上传所述代码文件的用户作为锁定用户,则锁定的代码文件禁止非锁定用户发布。

上传模块306,用于将锁定的代码文件上传到master。

解锁模块308,用于依据所述锁定用户针对锁定的代码文件的发布操作,解除对代码文件的锁定。

综上,在接收到文件上传命令时获取用户上传的代码文件,然后锁定该上传的代码文件,从而除锁定代码文件的用户外,其他非锁定用户均无法发布该锁定的代码文件,然后将锁定的代码文件上传到master,在锁定用户将锁定的代码文件发布上线后,再接触对代码文件的锁定,保证在代码文件上传到master后不会被其他用户上线,防止由于误上线代码文件而导致的上线安全问题。

参照图4,示出了根据本发明另一个实施例的一种文件处理装置实施例的结构框图,具体可以包括如下模块:

获取模块302,用于接收到文件上传命令时,获取用户上传的代码文件,其中,所述文件上传命令用于上传代码文件到远程主库master。

加锁判断模块310,用于判断所述代码文件是否被锁定;若代码文件已被锁定,拒绝执行对锁定的代码文件的上传操作。

锁定模块304,用于对所述代码文件执行加锁操作,锁定所述代码文件,其中,将上传所述代码文件的用户作为锁定用户,则锁定的代码文件禁止非锁定用户发布。

上传模块306,用于将锁定的代码文件上传到master。

解锁模块308,用于依据所述锁定用户针对锁定的代码文件的发布操作,解除对代码文件的锁定。

其中,所述获取模块302,包括:

触发子模块3022,用于接收到文件上传命令时,触发脚本调用钩子程序。

文件获取子模块3024,用于采用所述钩子程序获取用户上传的代码文件,以及所述代码文件的文件信息。

其中,所述锁定模块304,用于依据所述文件信息确定所述锁定用户的锁记录。

所述锁定模块304,包括:

判断子模块3042,用于判断所述锁定用户是否具有锁记录。

记录锁定子模块3044,用于在所述锁定用户具有锁记录时,将所述文件信息添加到所述锁定用户的锁记录中。

所述记录锁定子模块3044,还用于在所述锁定用户不具有锁记录时,建立所述锁定用户的锁记录,在所述锁定用户的锁记录中添加所述文件信息。

所述解锁模块308,用于判断所述锁定用户从master将锁定的代码文件发布到线上服务器后,解除对代码文件的锁定。

所述解锁模块308,用于从所述锁定用户的锁记录中删除所述代码文件的文件信息。

所述解锁模块308,还用于对上线目录进行转换,确定上线的代码文件,从所述上线的代码文件中确定锁定的代码文件。

本实施例实现了基于文件的锁机制。一个用户保持一个锁记录,如果当前该用户没有锁记录,加锁操作时插入一条该用户的锁记录,如果当前用户已经有一条没有解锁的锁记录,则直接在该锁记录中添加即可。其中,在软件开发过程中,往往上传到master的是项目的一系列文件,因此可以这些文件的文件信息构成一个文件列表,将要加锁的文件列表添加到已经存在的锁记录当中,解锁时在该锁定用户的锁记录的文件列表中,把需要解锁的文件列表删除出去。

从而在push操作执行时对修改的文件进行加锁操作,在上线完成之后,对上线成功的文件进行解锁操作,将上线成功的文件列表在锁记录的文件列表中去除掉。其中,在解锁文件时涉及到文件列表file_list的设计,文件列表file_list都是文件,则直接从锁记录中删除即可,如果file_list有目录则需要做一步转化操作,全都转换成文件,然后从锁记录中删除。

对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。

在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。

本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。

此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的文件处理方法和装置设备中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。

应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

本发明公开了A1、一种文件处理方法,包括:

接收到文件上传命令时,获取用户上传的代码文件,其中,所述文件上传命令用于上传代码文件到远程主库master;

对所述代码文件执行加锁操作,锁定所述代码文件,其中,将上传所述代码文件的用户作为锁定用户,则锁定的代码文件禁止非锁定用户发布;

将锁定的代码文件上传到master;

依据所述锁定用户针对锁定的代码文件的发布操作,解除对代码文件的锁定。

A2、如A1所述的方法,其中,所述接收到文件上传命令时,获取用户上传的代码文件,包括:

接收到文件上传命令时,触发脚本调用钩子程序;

采用所述钩子程序获取用户上传的代码文件,以及所述代码文件的文件信息。

A3、如A2所述的方法,其中,对所述代码文件执行加锁操作,包括:

依据所述文件信息确定所述锁定用户的锁记录。

A4、如A3所述的方法,其中,依据所述文件信息确定所述锁定用户的锁记录,包括:

判断所述锁定用户是否具有锁记录;

若所述锁定用户具有锁记录,则将所述文件信息添加到所述锁定用户的锁记录中。

A5、如A4所述的方法,其中,还包括:

若所述锁定用户不具有锁记录,则建立所述锁定用户的锁记录,在所述锁定用户的锁记录中添加所述文件信息。

A6、如A3所述的方法,其中,依据所述锁定用户针对锁定的代码文件的发布操作,解除对代码文件的锁定,包括:

判断所述锁定用户从master将锁定的代码文件发布到线上服务器后,解除对代码文件的锁定。

A7、如A6所述的方法,其中,解除对代码文件的锁定,包括:

从所述锁定用户的锁记录中删除所述代码文件的文件信息。

A8、如A6所述的方法,其中,所述的方法还包括:

对上线目录进行转换,确定上线的代码文件,从所述上线的代码文件中确定锁定的代码文件。

A9、如A1所述的方法,其中,获取用户上传的代码文件之后,所述的方法还包括:

判断所述代码文件是否被锁定;

若代码文件已被锁定,拒绝执行对锁定的代码文件的上传操作。

本发明实施例还公开了B10、一种文件处理装置,包括:

获取模块,用于接收到文件上传命令时,获取用户上传的代码文件,其中,所述文件上传命令用于上传代码文件到远程主库master;

锁定模块,用于对所述代码文件执行加锁操作,锁定所述代码文件,其中,将上传所述代码文件的用户作为锁定用户,则锁定的代码文件禁止非锁定用户发布;

上传模块,用于将锁定的代码文件上传到master;

解锁模块,用于依据所述锁定用户针对锁定的代码文件的发布操作,解除对代码文件的锁定。

B11、如B10所述的装置,其中,所述获取模块,包括:

触发子模块,用于接收到文件上传命令时,触发脚本调用钩子程序;

文件获取子模块,用于采用所述钩子程序获取用户上传的代码文件,以及所述代码文件的文件信息。

B12、如B11所述的装置,其中,

所述锁定模块,用于依据所述文件信息确定所述锁定用户的锁记录。

B13、如B12所述的装置,其中,所述锁定模块,包括:

判断子模块,用于判断所述锁定用户是否具有锁记录;

记录锁定子模块,用于在所述锁定用户具有锁记录时,将所述文件信息添加到所述锁定用户的锁记录中。

B14、如B13所述的装置,其中,

所述记录锁定子模块,还用于在所述锁定用户不具有锁记录时,建立所述锁定用户的锁记录,在所述锁定用户的锁记录中添加所述文件信息。

B15、如B12所述的装置,其中,

所述解锁模块,用于判断所述锁定用户从master将锁定的代码文件发布到线上服务器后,解除对代码文件的锁定。

B16、如B15所述的装置,其中,

所述解锁模块,用于从所述锁定用户的锁记录中删除所述代码文件的文件信息。

B17、如B15所述的装置,其中,

所述解锁模块,还用于对上线目录进行转换,确定上线的代码文件,从所述上线的代码文件中确定锁定的代码文件。

B18、如B10所述的装置,其中,所述的方法还包括:

加锁判断模块,用于判断所述代码文件是否被锁定;若代码文件已被锁定,拒绝执行对锁定的代码文件的上传操作。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1