±¾ÎÄÏêÐðÁËWebDAVÔõÑùÓÃÓÚSubversion¡£ÌرðÊÇ£¬¿Í»§¶ËÔõôÓÃNeonÉú³ÉWebDAVÇëÇó£¬ÒÔ¼°·þÎñÆ÷¶ËÔõô½«WebDAVÇëÇóת±ä³ÉSubversion´úÂë²Ö¿âµÄ²Ù×÷¡£ÕâÀïµÄ·þÎñÆ÷¶ËÊÇÒ»¸ö×÷Ϊmod_dav¹¦Äܺó¶ËµÄApache
2.0Ä£¿é¡£
±¾ÎÄ´óÁ¿ÒýÓÃÁË SubversionÉè¼ÆÎĵµºÍ×îÐ嵀 Delta-VÐÒé²Ý°¸¡£ÕâÁ½·ÝÎĵµµÄÏêϸÄÚÈݾͲ»ÔÚ±¾ÎÄÖÐÖØ¸´ÁË¡£
×¢Ò⣺SubversionʹÓÃDeltaVÀ´½øÐÐͨÐÅ£¬µ«ÊÇSubversion¿Í»§¶Ë²¢²»ÊÇÒ»¸öͨÓõÄDeltaV¿Í»§¶Ë¡£Êµ¼ÊÉÏ£¬Subversion¿Í»§¶ËÒÀÀµÓÚ·þÎñÆ÷µÄһЩרÓÐÌØÐÔ¡£¸ü½øÒ»²½À´Ëµ£¬Subversion·þÎñÆ÷¶ËÒ²²»ÊÇÒ»¸öͨÓõÄDeltaV·þÎñÆ÷¡£ËüÖ»ÊÇʵÏÖÁËDeltaVÐÒéµÄÒ»¸ö×Ó¼¯¡£µ±ÇÒ½öµ±Ö»Ê¹ÓÃSubversion·þÎñÆ÷¶ËʵÏÖµÄÕâ¸ö×Ó¼¯µÄ¹¦ÄÜʱ£¬WebDAV»òÕßDeltaV¿Í»§¶Ë²ÅÄÜÕý³£µÄÓëSubversion·þÎñÆ÷¶ËÐ×÷
SubversionµÄ2.0°æ½«»á´¦ÀíWebDAVÐ×÷ÐÔ£¨°üÀ¨ÓëClass
1¡¢Class 2ºÍDeltaV£©µÄÎÊÌâ¡£Subversion¿Í»§¶ËÐèÒªµÄרÓÐÌØÐÔ¶¼»áÔÚDeltaVÖÐÌṩһ¸öÌæ´ú·½°¸£¬ËäÈ»Ìæ´ú·½°¸²»Ì«¸ßЧ¡£
SubversionµÄ1.0°æ»áÖ§³ÖÖ»¶ÁµÄClass 1 WebDAV¿Í»§¶Ë¡£ÈκÎÄܹ»ÔöÇ¿DeltaVÐͬÐÔ£¬ÇÒÈÝÒ×ʵÏֵŦÄܶ¼½«±»¿¼ÂÇ¡£
»ù±¾¸ÅÄî
SubversionʹÓÃÒ»¸ö»ùÓÚÊ÷µÄ¸ñʽÀ´ÃèÊö°æ±¾¿âµÄ±ä¸ü¼¯¡£Õâ¸öÊ÷ÊÇÔÚ¿Í»§¶Ë£¨Í¨¹ýÔÚ¹¤×÷¸±±¾ÖС°ÐÐ×ß¡±£©±»¹¹ÔìÓÃÀ´ÃèÊö±ä¸ü¡£Õâ¸öÊ÷×÷Ϊ±»Ó¦ÓÃÓÚ°æ±¾¿âÒ»¸öÏßÐÔÐòÁеıä¸ü±»±à×éµ½·þÎñ¶Ë¡£°æ±¾¿â¿ÉÒÔÒÔËæ»ú´æÈ¡µÄ·½Ê½½ÓÊܱä¸ü£¬ËùÒÔ´ÓÊ÷µ½Ò»ÏµÁб仯µÄÓ³Éä¶Ô°æ±¾¿âÀ´Ëµ·Ç³£ÈÝÒס£
SubversionΪÎļþ,Ŀ¼ÉõÖÁÐÞ¶©°æ±¾µÄ³éÏó¸ÅÄîÌṩÁËÊôÐÔ¡£Ç£ÉæÊôÐÔµÄÿһ¸ö²Ù×÷¿ÉÒÔͨ¹ý²Ù×÷PROPFINDºÍPROPPATCH
HTTP·½·¨Ö±½ÓÓ³Éäµ½WebDAVµÄÊôÐÔ¡£ÐÞ¶©°æ±¾±»½¨Ä£ÎªDeltaV»ùÏߣ¬ËùÒÔÐÞ¶©°æ±¾µÄÊôÐÔ¿ÉÒÔͨ¹ý»ùÏßµÄPROPFINDÀ´»ñµÃ¡£
Subversion·þÎñ¶ËÄܹ»ÓÐЧµÄ¼ÆËãÁ½¸ö°æ±¾Ö®¼äµÄÔöÁ¿£¨ÕâЩÔöÁ¿ÊÇÍêÕûµÄÊ÷ÔöÁ¿£¬²»ÊǼòµ¥µÄÎı¾ÔöÁ¿£©¡£DeltavûÓÐÖ±½ÓÄ£ÄâÊ÷ÔöÁ¿¸ÅÄî¡£¿Í»§¶Ë¿ÉÒÔͨ¹ýÔÚ¸÷ÖÖWebDAV×ÊÔ´ÉÏ·¢ËÍһϵÁÐPROPFINDÇëÇó·¢ÏÖ±ä¸ü£¬µ«ÊÇÕâ¸öµ÷Óöà¸öÇëÇó½«ÊÇÒ»¸öºÄʱµÄ²Ù×÷¡£×÷ÎªÌæ´ú£¬Subversion½«Õâ¸ö¸ÅÄîÕûÀíΪһ¸ö×Ô¶¨ÒåµÄWebDAV±¨¸æ¡£Ê¹ÓÃÕâ¸ö±¨¸æ£¬¿Í»§¶Ë¿ÉÒÔÁ˽⹤×÷¸±±¾ÖеÄÄÄÏî¹ýʱ²¢¿ÉÒÔ·¢ËÍGETºÍPROPFIND·½·¨»ñÈ¡ÐÂÊý¾Ý¡£
ÔÚSubversionÖУ¬·ÖÖ§ºÍ±êÇ©ÊǼòµ¥µÄ¿½±´£¬ÊÇÓÃWebDAV COPY´¦ÀíµÄ¡£
ÔÚij´¦ÐèÒªÌÖÂÛ¿½±´.ÐèÒªÌÖÂÛ¿½±´µÄÀúÊ·ÈçºÎ±»±£´æ (svnÊÇ×Ô¶¯´¦ÀíµÄ,
µ«ÊÇÓëÆäËû·þÎñ¶Ë½»»¥µÄʱºò¿ÉÄÜÐèÒªÎÒÃÇÔÚÆäËû·þÎñ¶ËÉèÖÃÒ»¸ö×Ô¶¨ÒåÊôÐÔ.
SubversionÖÐʹÓõÄDeltav¸ÅÄî
SubversionʹÓÃÁËÐí¶àDeltav¸ÅÄî, ÁбíÈçÏÂ. ×¢ÒâÕâЩ¸ÅÄîÖÐÓкܶಢûÓб»SubversionÍêȫʵÏÖ;
ÎÒÃÇÒѾʵÏÖÁË×ã¹»µÄ¸ÅÄîÒÔÂú×ãÎÒÃǵÄÐèÒª£¬µ«ÊDZȽÏÉÙ.
»ùÏß
»î¶¯
°æ±¾×ÊÔ´
°æ±¾¿ØÖÆÅäÖÃ
»ùÏß¼¯ºÏ
°æ±¾¿ØÖƵÄ×ÊÔ´
¹¤×÷×ÊÔ´£¨¹¦ÄÜ£©
ºÏ²¢¹¦ÄÜ
±êÇ©¹¦ÄÜ
°æ±¾¿ØÖƼ¯ºÏ¹¦ÄÜ
SubversionÏîÄ¿±íÏÖΪURLÐÎʽ
µÚÒ»¸öÒª¶¨ÒåµÄ¸ÅÄîÊÇÏîÄ¿ÊÇÈçºÎÏÔʾ¸ø¿Í»§¶ËµÄ¡£ ÔÚ·þÎñ¶ËSubversion½«ËùÓÐÏîÄ¿±íÏÖΪURLµÄÐÎʽ¡£
Õâ¸öÏîĿϵÄÎļþ»ò×ÓĿ¼½«Í¨¹ýURLÃüÃû¿Õ¼ä±»±íÏÖ¡£
ÀýÈ磬¼ÙÉèÎÒÃÇÓÐÒ»¸ö½Ð×ö¡°example¡±µÄÏîÄ¿¡£²¢ÇÒÎÒÃÇ˵£¬Õâ¸öÏîÄ¿½«±»±íÏÖΪÕâ¸öURL£º
http://subversion.tigris.org/repos/example/¡£
Õâ¸öÓ³Éäͨ¹ýApache HTTP Server£¨ÔÚÎÊÌâÖÐÍйÜSubversion´úÂëºÍÌØ¶¨ÏîÄ¿£©µÄһϵÁÐÅäÖòÎÊý±»ÉèÖá£ÅäÖÿÉÄÜÏñÏÂÃæÕâÑù£º
<Location /repos/example> DAV svn SVNPath /home/svn-projects/example </Location> |
Õâ¸öÏîĿϵÄÎļþ»òĿ¼½«Ö±½Ó±»Ó³Éäµ½URLÃüÃû¿Õ¼ä¡£ÀýÈ磬Èç¹ûÕâ¸öÏîÄ¿ÔÚÒ»¸ö×ÓĿ¼¡°sub¡±Öаüº¬Ò»¸öÎļþ¡°file.c¡±£¬ÄÇôÄǸöÎļþµÄURL½«ÊÇ£º
http://subversion.tigris.org/repos/example/sub/file.c¡£
³õʼ¼ì³ö
µ±Óû§Ö´ÐÐÒ»¸öSubversionÏîÄ¿µÄ³õʼ¼ì³ö²Ù×÷£¬¿Í»§¶Ë½«·¢³öÒ»Á¬´®µÄPROPFINDºÍGETÇëÇó¡£ÕâЩÇëÇ󽫱éÀú°æ±¾¿â£¬»ñµÃһЩËùÐèµÄÔªÊý¾Ý,
È»ºó»ñµÃ×îеÄÐÞ¶©°æ±¾ºÅ.ÃèÊö»ñÈ¡»î¶¯¼¯ºÏµÄOPTIONSÇëÇó¡£ÃèÊöµ½´ï»ùÏß¼¯ºÏµÄһϵÁÐPROPFINDÇëÇó¡£
(´ÓÏÂÃæÒÆµ½ÕâÀÐèÒª±»ÖØÐ´)
³õʼ»¯¼ì³ö²Ù×÷±»Ö´ÐÐºó£¬ Subversion»ñÈ¡µ½DAV£º»î¶¯¼¯ºÏ¸ø¶¨Öµ²¢ÔÚ¹¤×÷¸±±¾µÄÿ¸öĿ¼Öн«Æä´æ´¢ÎªÊôÐÔ¡£Ã¿¸ö¼¯ºÏ¶¼ÓÐÊôÐÔ¡£ÊôÐÔÁгöÁË·þÎñ¶Ë»î¶¯±»´´½¨µÄλÖᣵÚÒ»¸öλÖñ»´æ´¢ÔÚ¿Í»§¶ËÓÃÀ´ÔÚÌá½»¹ý³ÌÖÐʹÓá£
»òÐíÓ¦¸ÃÃèÊöÎÒÃÇ»ñȡԪÊý¾Ýºó£¬¼ì³ö¡°·Ç×îеġ±£¨ÈçÈÕÆÚ»òÐÞ¶©°æ±¾ºÅ£©ÈçºÎ¹¤×÷¡£
Ìá½»±ä¸ü
SubversionÌύʹÓÃDeltavµÄ¡°»î¶¯¡±¸ÅÄîÀ´½¨Ä£¡£Ò»¸ö»î¶¯Äܹ»±»¿´×öÊÇÒ»´Î´«ÊäһϵÁÐ×ÊÔ´¡£
´´½¨»î¶¯
ÔÚÌá½»µÄʱºò£¬ Subversion¿Í»§¶Ë½«¶ÁÈ¡´æ´¢µÄDAV£ºDAV:activity-collection-setÓÃÀ´Á˽âÓ¦¸ÃÔÚÄÄÀï´´½¨»î¶¯¡£
½ÓÏÂÀ´£¬¿Í»§¶Ë½«Îª»î¶¯µÄλÖÃÉú³ÉÒ»¸öUUID£¨Î©Ò»Öµ£© ¡£×îºó¿Í»§¶Ë·¢ËÍÒ»¸öMKACTIVITY·½·¨ÇëÇó,
ÇëÇóµÄURL´Ó»î¶¯Î»ÖúÍUUID±»±íÏÖ¡£zh
¼ò¶Ì×ܽ᣺
ÔÚ¼ì³öʱ£º
ÇëÇó: OPTIONS for DAV:activity-collection-setÏìÓ¦£ºhttp://www.example.com/repos/foo/$svn/act/
ÔÚÌύʱ£º
ÇëÇó£º MKACTIVITY http://www.example.com/repos/foo/$svn/act/01234567-89ab-cdef-0123-456789abcdef
ÏìÓ¦£º 201 (Created)
CHECKOUT·½·¨Äܹ»Ö¸¶¨Ò»¸ö»î¶¯ÓÃÀ´¼ì³ö¡£ Õâ¸ö¹¦ÄÜÓÃÓÚ¹ØÁªËùÓеÄÌõÄ¿ºÍд´½¨µÄ»î¶¯¡£
´æ´¢Ìá½»ÐÅÏ¢
¼ì³ö»ùÏߣ¬²¢¶Ô¹¤×÷»ùÏßÓ¦ÓÃPROPPATCK·½·¨¡£
½«±ä¸üÓ³Éäµ½WebDAV
SubversionµÄ±ä¸ü¼¯ÓÃtree delta±íʾ(²é¿´SVNµÄÉè¼ÆÏ¸½ÚÒÔÈ·¶¨ÄÇЩ±ä¸ü¿ÉÒԷŽøtree
delta)¡£tree delta»á±»²ð³ÉÇëÇ󼯣¬ÆäÖÐÇëÇóÊÇÒÔϼ¸ÖÖÐÎʽ֮һ£º
1.ɾ³ýÎļþ»òĿ¼
ÕâЩ±ä¸ü±»Ó³Éä³ÉDELETE²Ù×÷¡£Ä¿±ê¸¸¼¯µÄ°æ±¾×ÊԴʹÓÃCHECKOUT·½·¨¼ì³ö(µ½µ±Ç°»î¶¯)¡£Ä¿±ê(Ãû³Æ)Ëæºó±»DELETE·½·¨´Ó½á¹û¹¤×÷¼¯É¾³ý¡£
2.Ìí¼ÓÎļþ
ÕâÖÖ±ä¸ü»áÓ³ÉäΪ¶ÔÄ¿±ê¸¸¼¯µÄ°æ±¾×ÊÔ´½øÐÐCHECKOUT²Ù×÷¡£ÐÂÎļþ±»Ê¹ÓÃPUTÇëÇó´´½¨ÓÚ½á¹û¹¤×÷¼¯¡£ÊôÐÔʹÓÃPROPPATCHÉèÖá£
3.Ìí¼ÓĿ¼
ÕâÖÖ±ä¸ü±»Ó³ÉäΪ¶ÔÄ¿±ê¸¸¼¯µÄ°æ±¾×ÊÔ´½øÐÐCHECKOUT²Ù×÷¡£ÐÂĿ¼±»Ê¹ÓÃMKCOLÇëÇó´´½¨ÓÚ½á¹û¹¤×÷¼¯¡£ÊôÐÔͨ¹ýPROPPATCHÉèÖá£
4.Ìí¼ÓÖ¸Ïòǰ´ú׿ÏÈ(¸±±¾)µÄÎļþ»òĿ¼(ÕâÖÖÎļþ»òĿ¼ÀàËÆlinuxµÄÎļþÁ´½Ó£¿)
ÐèÒª¸üб¾½Ú
tree delta¿ÉÒÔÖ¸¶¨Îļþ»òĿ¼ΪÆäËûÎļþ»òĿ¼µÄÒ»·Ý¸±±¾¡£Õâ¸ö¸±±¾¿É±»ÆäËûÔªËØµÄtree
deltaÐ޸ġ£
ÕâÖÖ±ä¸ü±»Ó³ÉäΪ£¬¶Ô°üº¬ÐÂ×ÊÔ´µÄ¸¸¼¯µÄ°æ±¾×ÊÔ´½øÐÐCHECKOUT²Ù×÷¡£VERSION-CONTROL·½·¨»áÔÚµ±Ç°¹¤×÷¼¯ÄÚ´´½¨Ðµİ汾¿ØÖÆ×ÊÔ´(VCRs)£¬VCRµÄDAV:checked-inÊôÐÔÖ¸ÏòÆä׿Ïȵİ汾×ÊÔ´¡£
Ìáʾ£º¿´ÆðÀ´ÎÒÃÇÓ¦¸ÃʹÓÃCOPY°ÑÕýÈ·×ÊÔ´¿½È뵱ǰ¹¤×÷¼¯¡£Õ⽫»á´´½¨Ò»¸öеİ汾ÀúÊ·(Ëæºó±»·ÅÈ뵱ǰ¹¤×÷¼¯)£¬¸Ã°æ±¾ÀúʷʹÓÃDAV:precursor-setÊôÐÔÖ¸¶¨Æä׿Ïȵİ汾×ÊÔ´¡£ÓÉÓÚ°æ±¾×ÊÔ´²»Ö¸¶¨ÐÞ¶©°æ£¬²»¿ÉÄÜCOPYÒ»¸ö°æ±¾×ÊÔ´µ½µ±Ç°¹¤×÷¼¯£¬´Ë¾Ù²»»á֪ͨÎÒÃǾ¿¾¹ÊÇÄĸöÐÞ¶©°æ±»¿½±´¡£Ïà·´£¬ÎÒÃÇ×îºÃ´ÓÕýÈ·µÄ»ùÏßÖп½³ö°æ±¾×ÊÔ´¡£Õâ±íÃ÷£¬¿Í»§¶Ë¿ÉÒÔ°ÑÒ»¸öURL/ÐÞ¶©°æ¶ÔÓ³ÉäΪ»ùÏߵİ汾×ÊÔ´URL¡£
µÚ¶þ¸öÎÊÌâʱ£¬ÎÒÃÇÈçºÎÉèÖð汾ÀúÊ·µÄ DAV:precursor-setÊôÐÔ¡£»òÕߣ¬¸üÏêϸµã£¬ÎÒÃÇÈçºÎ¸ù¾Ý´æ´¢ÔÚ²Ö¿âµÄÐÅÏ¢ÌáÈ¡¸ÃÖµ¡£ÕâÈÔÐèÒªÑо¿¡£
5.ÓÃÎļþ/Ä¿Â¼Ìæ»»ÁíÒ»¸öÎļþ/Ŀ¼
ÕâÖÖ±ä¸ü²»ÄܶÔÓ¦WebDAVµÄÈκβÙ×÷£¬ÒòΪtree delta»áÓ³ÉäΪÁ½¸öÁ¬ÐøµÄ²Ù×÷£ºÏÈdeleteÈ»ºóadd
6.ÒÆ¶¯Îļþ»òĿ¼
ÕâÖÖ±ä¸ü²»ÄܶÔÓ¦WebDAVµÄÈκβÙ×÷£¬ÒòΪtree delta»áÓ³ÉäΪÁ½¸ö²»Í¬µÄ²Ù×÷£ºÏÈdeleteÈ»ºóaddǰ´ú׿ÏÈ¡£
7.Ìæ»»Îļþ
Ó³ÉäΪ¶ÔÄ¿±êµÄ°æ±¾×ÊÔ´½øÐÐCHECKOUT²Ù×÷£¬È»ºóPUTµ½½á¹û¹¤×÷¼¯¡£
8.Ìæ»»Ä¿Â¼
ÔÚSubversionµÄÊõÓïÖУ¬¡°Ì滻Ŀ¼¡±Òâζ×ÅĿ¼ÄÚµÄÌí¼Ó¡¢É¾³ý¼°ÆäËû²Ù×÷¡£Ã¿¸ö±ä¸ü»áµ¥¶ÀÓ³É䣬¶øÇÒ¶ÔĿ¼µÄ±ä¸üÊÇÒþʽ²Ù×÷µÄ¡£
9.ÊôÐÔdelta
ÊôÐÔdelta(ÓëÎļþ»òĿ¼Ïà¶Ô)Ö±½Ó±»Ó³ÉäΪWebDAVÊõÓïÖеÄPROPPATCH¡£Ä¿±êµÄ°æ±¾×ÊԴʹÓÃCHECKOUT¼ì³ö£¬PROPPATCH»áÓ¦ÓÃÓÚ½á¹û¹¤×÷¼¯¡£
×îÖÕÌá½»
×îºóµÄÌá½»¶¯×÷½«»áÏòSubversion·þÎñÆ÷Éú³ÉÒ»¸öMERGEÇëÇó£¬Ö¸¶¨¼ìÈëµÄ»î¶¯(֮ǰ´´½¨)£¬ÒÔ¼°±»¸üеÄÖ¸Ïòа汾×ÊÔ´µÄÏàÓ¦°æ±¾¿ØÖÆ×ÊÔ´¡£
¹ØÓÚµ±Ç°¹¤×÷»ùÏߣ¬ÒÔ¼°Èç¹ûÓÃÆä´´½¨ÐµĻùÏß(°üº¬Ìá½»ÐÅÏ¢)£¬ÏÂÎĵįÀÂÛ(?)²¢²»ÕýÈ·¡£
°æ±¾¿ØÖÆ×ÊÔ´Ò²ÊÇ»ùÏß¿ØÖƵ쬼´¶ÔËüµÄ¸üлá×Ô¶¯´´½¨Ò»¸öлùÏß¡£±¾ÖÊÉÏ£¬Ìá½»»áÏàÓ¦ÓÚеÄSubversionÐÞ¶©°æ´´½¨Ò»¸öлùÏß¡£
Àý×Ó
¾¯¸æ: ±¾½ÚûÓиüе½×îжÔSVN-to-DAVµÄÓ³ÉäµÄ±ä¸ü£¬Ôڴ˾¯¸æÒƳýǰ£¬ÔÝÈÏΪ±¾½ÚÒѹýÆÚ¡£
¿¼ÂÇÏÂÒÔÏÂÒ»×é²Ù×÷£¬ÒÔ¼°ÏàÓ¦µÄtree delta(Õª×ÔSVNµÄÉè¼ÆÎĵµ)£º
1.ÖØÃüÃû/dir1/dir2Ϊ/dir1/dir4,
2.ÖØÃüÃû/dir1/dir3Ϊ/dir1/dir2, ²¢ÇÒ
3.°Ñfile3´Ó/dir1/dir4ÒÆ¶¯µ½/dir1/dir2
<tree-delta> <replace name='dir1'> <directory> <tree-delta> <replace name='dir2'> <directory ancestor='/dir1/dir3'> (1) <tree-delta> <new name='file3'> (2) <file ancestor='/dir1/dir2/file3'/> </new> </tree-delta> </directory> </replace> <delete name='dir3'/> (3) <new name='dir4'> (4) <directory ancestor='/dir1/dir2'> <tree-delta> <delete name='file3'/> (5) </tree-delta> </directory> </new> </tree-delta> </directory> </replace> </tree-delta> |
±éÀú´Ëdelta£¬ÎÒÃÇÁгöÁ˶ÔÓ¦µÄWebDAVÇëÇó¡£ÉÏÎÄdeltaµÄÊý×Ö±àºÅ´óÖÂÏ൱ÓÚÏÂÃæµÄÁбíÏî±àºÅ¡£ÕâÖÖ¶ÔÓ¦¹ØÏµ²¢²»Ê®·Ö׼ȷ£¬ÒòΪһ¸öÌØ¶¨µÄ¡¢¼È³ÉµÄÐÐΪͨ³£»ùÓÚdeltaÖеÄÒ»×éÔªËØ¡£
1.<directory ancestor="/dir1/dir3">
Ö¸¶¨ÎÒÃÇÓÃ/dir1/dir3Ìæ»»/dir1/dir2CHECKOUT /dir1/dir2/
(·µ»Ø¸ÃĿ¼µÄÒ»¸öµ±Ç°¹¤×÷×ÊÔ´URL) COPY /dir1/dir3/
Destination: http://www.example.com/$svn/wrk/.../
Overwrite: T
2./dir1/dir2/file3ÊÇеÄ(ÒòΪÎÒÃǸոÕÖØÐ´ÁËÔʼµÄdir2Ŀ¼)£¬²¢À´Ô´ÓÚ/dir1/dir2/file3¡£Òò´Ë£¬ÎÒÃÇÖ»ÐèÒªCOPYÎļþµ½Ä¿±êĿ¼µÄµ±Ç°¹¤×÷×ÊÔ´£ºCOPY
/dir1/dir2/file3
Destination: http://www.example.com/$svn/wrk/.../file3
3.CHECKOUT /dir1/dir3/
(·µ»Ø¸ÃĿ¼µÄÒ»¸öµ±Ç°¹¤×÷×ÊÔ´URL) DELETE /$svn/wrk/.../
4.ÎÒÃǽ«»áÔÚ/dir1Ï´´½¨ÐµÄ×ÓĿ¼(dir4)¡£ÓÉÓÚ»¹Ã»Óмì³ö/dir1£¬ÎÒÃÇÕâÑù×ö£ºCHECKOUT
/dir1/
(·µ»Ø¸ÃĿ¼µÄÒ»¸öµ±Ç°¹¤×÷×ÊÔ´URL) ÏÖÔÚÎÒÃǰÑÕýÈ·µÄĿ¼¸´ÖƵ½Ðµĵ±Ç°¹¤×÷×ÊÔ´£ºCOPY
/dir1/dir2/
Destination: http://www.example.com/$svn/wrk/.../dir4/
5.COPYÔÚ·þÎñÆ÷ÉÏ´´½¨ÁËÍêÕûµÄÒ»×鵱ǰ¹¤×÷×ÊÔ´£¬ÎÒÃÇÖ»Ðèɾ³ý²»ÔÙÐèÒªµÄÄDz¿·Ö£ºDELETE:
/$svn/wrk/.../dir4/file3
URL²¼¾Ö
Subversion·þÎñÆ÷ͨ¹ý×Ô¶¨ÒåµÄURL¹«¿ª²Ö¿â¡£ÀýÈ磬foo²Ö¿â¿ÉÄÜλÓÚhttp://www.example.com/repos/foo/¡£µ«ÊÇ£¬·þÎñÆ÷»¹ÐèÒªÒ»×éÆäËû¹«¿ª×ÊÔ´À´±£Ö¤Õý³£²Ù×÷¡£ÕâЩ¸½¼Ó×ÊÔ´»áÓëÖ÷²Ö¿âURLϵÄijλÖÃϵÄËùÓÐ²Ö¿â¹ØÁª¡£Ä¬ÈÏ£¬´ËλÖÃΪ$svn£¬Ò²¿ÉÒÔͨ¹ýSVNSpecialURIÖ¸ÁîÀ´ÉèÖãº
<Location /repos/foo> DAV svn SVNPath /home/svn-projects/foo SVNSpecialURI .special </Location> |
ÔÚSVNSpecialURIÖ¸¶¨µÄλÖÃÏ£¬ÎÒÃÇÐèÒª¹«¿ªÒ»Ð©¼¯ºÏ(collections)¡£¼ÙÉèÎÒÃÇʹÓÃĬÈϵÄ$svn£¬ÕâЩ¼¯ºÏΪ£º$svn/act
´ËÇøÓòÊǻ´´½¨µÄλÖ᣿ͻ§¶ËÐèҪѡÔñÔڴ˼¯ºÏÄÚΨһµÄÃû×Ö£¬È»ºóÏò¸ÃURL·¢ËÍÒ»¸öMKACTIVITY¡£È»ºó£¬¿Í»§¶Ë¾Í¿ÉÒÔʹÓøû×ö½øÒ»²½½»»¥¡£$svn/act/ÄÚµÄ×ÊÔ´²»ÄÜʹÓ÷½·¨.
Ìáʾ: ʵ¼ÊÉÏÎÒÃÇ¿ÉÒÔʹÓôøDepth:1Í·µÄPROPFINDÀ´ÔÊÐí¿Í»§¶Ë±éÀúµ±Ç°ËùÓл¡£
Ö»ÓÐÒ»¸ö·½·¨×Ó¼¯¿ÉÒÔ²Ù×÷¸Ã¼¯ºÏϵĻ¡£ËüÃÇÊÇ£ºPROPFIND, MERGE
(Ìá½»»î¶¯), and DELETE (ÖÕÖ¹»î¶¯). ¸ù¾ÝDelta-V¹æ·¶£¬ËùÓеĻ×ÊÔ´ÔÚDAV:activity϶¼ÓÐDAV:resourcetypeÊôÐÔ¡£
$svn/his/±¾½ÚÐèÒª¸Ä½ø£»ÊÂʵÉÏ£¬ÎÒÃÇûÓÐʹÓð汾ÀúÊ·×ÊÔ´£¬½«À´£¬ËüÃÇ¿ÉÄܱ»Éè¼Æ³ÉÀàËÆÏÂÃæµÄÄ£ÐÍ£º
´Ë¼¯ºÏ°üº¬Ò»¸öÏîĿϵÄÎļþºÍĿ¼µÄ°æ±¾ÀúÊ·×ÊÔ´¡£ÆäÄÚ²¿²¼¾ÖÍêÈ«ÓÉ·þÎñÆ÷¶¨Òå¡£¿Í»§¶Ë½«Í¨¹ý¶à¸öÏìÓ¦»ñÈ¡´Ë¼¯ºÏ¼°Æä×Ó¼¯ºÏµÄURL¡£$svn/his/ÄÚµÄ×ÊÔ´²»ÄÜʹÓ÷½·¨¡£URLµÄÃüÃû¿Õ¼ä±»Éè¼Æ³ÉÈçϵÄURLÐÎʽ£º
$svn/his/node-id
node-idÊÇSubversionÓÃÀ´ÒýÓõ¥¶ÀÎļþºÍĿ¼µÄÄÚ²¿Öµ£¬ÊÇÓÉSubversion²Ö¿â¶¨ÒåµÄµ¥¸öÕûÊýÖµ¡£×¢Òâ´Ënode-idÊǷǵã×´½ÚµãID(undotted
node id ?)£¬²Ö¿âÖиø¶¨½ÚµãµÄÈ«²¿ÀúÊ·µÄ»ù´¡¡£node-idµÄDAV:resourcetypeµÄ¼¯ºÏÊÇDAV:version-history.
Ìáʾ: ÉÏÎÄÐÅÏ¢¿ÉÄܲ»Ì«×¼È·¡£Á´½ÓÒ»¸ö°æ±¾ÀúÊ·µ½ÆäËû°æ±¾ÀúÊ·µÄÎÊÌâÈÔÈ»´æ¡£½øÒ»²½£¬ÎÒÈÏΪnode
73 ºÍ node 73.4.1ÊǸ÷×Եİ汾ÀúÊ·(ºóÕßÁ´½Óµ½ÁËǰÕß)¡£73.x ºÍ73.4.1.x Êǰ汾ÀúÊ·Äڵİ汾¡£
$svn/ver/
Õâ¸ö¼¯ºÏ°üº¬ÏîÄ¿µÄ°æ±¾×ÊÔ´¡£$svn/ver/ÄÚµÄ×ÊÔ´²»ÄÜʹÓ÷½·¨¡£Õâ¸ö¼¯ºÏµÄ²¼¾ÖÓÉ·þÎñÆ÷¶¨Ò塣ΪÁËÒýÓÃ(ÒÔ¼°ÃèÊöʵÏÖ)µÄÐèÒª£¬Ëü±»Éè¼ÆÎª£º
$svn/ver/node-id/path
Ö»ÓÐÖ»¶ÁµÄ·½·¨²ÅÄÜÓÃÔÚÕâЩ×ÊÔ´ÉÏ£¬Èç GET, PROPFIND, REPORT£»ÆäËû·½·¨¶¼ÊDz»ºÏ·¨µÄ¡£°æ±¾×ÊÔ´µÄDAV:resourcetypeÊǼìÈëʱ×ÊÔ´µÄÖµ¡£(Èç
<D:resourcetype/> »ò <D:resourcetype><D:collection/></D:resourcetype>).
$svn/wrk/
´Ë¼¯ºÏ°üº¬ËùÓÐͨ¹ýCHECKOUT·½·¨±»¼ì³öµÄ×ÊÔ´µÄµ±Ç°¹¤×÷×ÊÔ´¡£¼¯ºÏµÄÐÎʽºÍ½á¹¹Ò²ÓÉ·þÎñÆ÷¶¨Ò壬ҲÊÇÃ÷È·¶¨ÒåµÄ£¬ÕâÑù¿Í»§¶Ë²Å¿ÉÒÔÓë±»¼ì³öµÄ¼¯ºÏ×ÊÔ´½øÐÐÊʵ±½»»¥¡£$svn/wrk/ÄÚµÄ×ÊÔ´²»ÄÜʹÓ÷½·¨¡£ÎªÁËÒýÓÃÄ¿µÄ£¬µ±Ç°¹¤×÷×ÊÔ´µÄURL±»Éè¼Æ³É£º
$svn/wrk/activity/path
ËùÓз½·¨¶¼ÄÜÓÃÔÚµ±Ç°¹¤×÷×ÊÔ´ÉÏ£¬µ«ÊDz»ÄÜÓÃÔÚÆä¸¸×ÊÔ´ÉÏ¡£µ±Ç°¹¤×÷×ÊÔ´µÄDAV:resourcetype×ñÑÒ»°ã×ÊÔ´ÃüÃû·½Ê½£º<D:resourcetype/>´ú±í¾³£ÐԵĵ±Ç°¹¤×÷×ÊÔ´£¬<D:resourcetype><D:collection/></D:resourcetype>´ú±íµ±Ç°¹¤×÷¼¯¡£
$svn/vcc/
±¾½Ú»¹²»ÍêÕû¡£ °æ±¾¿ØÖƵÄÅäÖÃ(version-controlled configuration)...$svn/vcc/rootÊǸöµ¥Àý(singleton)
$svn/bln/
±¾½Ú»¹²»ÍêÕû¡£»ùÏß(baselines)... $svn/bln/rev/
$svn/wbl/
±¾½Ú»¹²»ÍêÕû¡£ µ±Ç°¹¤×÷»ùÏß(working baseline)...
$svn/bc/
±¾½Ú»¹²»ÍêÕû¡£. »ùÏß¼¯ºÏ(baseline collection)...
ÊôÐÔ¹ÜÀí(ÒÔ¼°ÀúÊ·/ÈÕÖ¾±¨¸æ)
±¾½ÚÐèÒªÐÞ¶©¡£ÊôÐÔ·¢ÉúÔÚFSÐÞ¶©°æÖÐ(ͨ¹ý»ùÏß¹«¿ª)¡£
֮ǰҲÌáµ½¹ý£¬SubversionµÄÊôÐÔ»áÓ³Éäµ½WebDAVµÄÊôÐÔ¡£¶ÔÀúÊ·/ÈÕÖ¾±¨¸æ£¬ÏÂÃæµÄWebDAVÊôÐÔÊÊÓÃÓÚÿ¸ö»ùÏß(SubversionÐÞ¶©°æ)ºÍÿһ¸öÐÞ¶©°æ´´½¨µÄ°æ±¾×ÊÔ´¡£ÓÉÓÚÕâЩ×ÊÔ´¶¼Êǰ汾×ÊÔ´£¬Òò´ËÏÂÃæµÄÊôÐÔ¶¼ÊÇÖ»¶ÁµÄ¡£
1.DAV:comment
ÓÃÓÚÖ¸¶¨¼ìÈëÆÀÂ۵ıê×¼µÄ(¹ýÆÚµÄ)ÊôÐÔ
2.DAV:creator-displayname
SubversionµÄ¡°Óû§¡±Ò»´ÎÌØ¶¨Ð޸ĺóÉú³ÉµÄ(ÒѹýÆÚµÄ)ÊôÐÔ
3.DAV:creationdate
Ìύʱ·þÎñÆ÷Éú³ÉµÄÖ»¶Á(δ¹ýÆÚµÄ)ÊôÐÔ
Ò»¸öÌØ¶¨ÎļþµÄÀúÊ·½«»áͨ¹ýREPORT·½·¨ºÍDAV:property-report±¨¸æÉú³É¡£Ò»¸öµäÐ͵ÄÀúÊ·½«»á»ñȡÿ¸öÎļþ»òĿ¼°æ±¾µÄÒÔÉÏÈý¸öÊôÐÔ¡£
»ùÓÚ¿Í»§¶ËµÄÉè¼Æ£¬Ö¸¶¨¹ØÓÚ°æ±¾ÐÅÏ¢µÄÆäËûÖ»¶ÁÊôÐÔ¿ÉÄܺÜÖØÒª¡£ÀýÈ磬һ¸öÎļþ¼ìÈëʱ£¬ÓжàÉÙÐÐÔö¼Ó/ɾ³ý£¿Éú³ÉÕâЩÊôÐÔ½«»áÏ൱ֱ½Ó£¬²¢»áËæ×Åʱ¼äÓɿͻ§¶ËµÄÉè¼ÆÍÆ¶¯¡£
Ìáʾ: Èç¹ûÎÒÃÇÕâÑù×ö£¬ÎÒÃǽ«»á°Ñ¿Í»§¶ËÀ¦°óÓÚ·þÎñÆ÷¡£Èç¹û¿Í»§¶ËÓëÆäËû²»±¨¸æÕâЩÊôÐÔµÄDelta·þÎñÆ÷½»»¥£¬ÎÒÃǼòµ¥µØÔÚUIÖв»ÏÔʾËüÃǾͿÉÒÔÁË(ÈçÓÅÑŵŦÄÜÍË»¯£¬graceful
degradation of functionality)¡£
»ñȡ״̬ºÍ¸üÐÂ
³õʼ¼ì³öºó£¬¿Í»§¶Ë¾Í¿ÉÒÔÇëÇó״̬±¨¸æ(¿Í»§¶ËµÄ±ä¸ü£¬»á¹ÒÆðÌá½»£¬·þÎñÆ÷µÄ±ä¸ü£¬»á¹ÒÆð¸üÐÂ)¡£¸üйý³ÌÊÇÀàËÆµÄ£¬µ«»¹»á»ñÈ¡·þÎñÆ÷Éϵıä¸ü¡£
±¾µØµÄ±ä¸ü½«È«²¿Óɿͻ§¶Ë´¦Àí¡£µ±Ç°¹¤×÷¿½±´(the Working Copy)¿â»áºÜÈÝÒ׵ؼì²âºÍ±¨¸æÕâЩ±ä¸ü¡£ÎÒÃÇÖ»ÐèÒª¹ØÐÄ£¬ÈçºÎ¸ßЧµØ¼ì²â·þÎñÆ÷Éϵıä¸ü¡£
ËäÈ»¿ÉÒÔ±éÀú²Ö¿â£¬»ñÈ¡µ±Ç°×´Ì¬£¬È»ºóÓë¿Í»§¶Ë״̬½øÐбȽϣ¬µ«ÊÇÕâÑù×ö²»ÊǸßЧµÄ¡£SubvesionµÄÉè¼ÆÔÊÐí·þÎñÆ÷ÔÚ»ñÖª¿Í»§¶Ë״̬µÄÇé¿öÏ£¬ÇáËɵؼÆËã³ö±ä¸ü(Ïà¶ÔÓÚ¿Í»§¶Ë)¡£
statusºÍupdateÃüÁîµÄºËÐÄÊÇ»ùÓÚ×Ô¶¨ÒåµÄ¡¢SubversionÌØ¶¨µÄWebDAV±¨¸æ¡£Õâ·Ý×Ô¶¨ÒåµÄ±¨¸æ½«»á֪ͨ·þÎñÆ÷µ±Ç°¹¤×÷¿½±´µÄ״̬£¬·þÎñÆ÷µÄÏìÓ¦½«»áÖ¸¶¨ÄÄЩ×ÊÔ´ÐèÒª±»¸üС£
ÕâÖÖÇëÇóÊǸö°üº¬×Ô¶¨ÒåXML½á¹¹µÄ±ê×¼REPORTÇëÇó¡£Õâ¸ö½á¹¹Ì壬½«ÀûÓÃSubversion±¨¸æ¶¥²ãÐÞ¶©°æºÅµÄ·½·¨£¬Ö»±¨¸æÐÞ¶©°æ²»Í¬µÄ×ӽڵ㡣±¨¸æµÄÏìÓ¦Ò²»áʹÓÃÏàͬµÄ·½Ê½±¨¸æÓбä¸üµÄ×ÊÔ´¡£Èç¹ûÓбä¸ü£¬·þÎñÆ÷½«»áÌṩһ¸ö¹©»ñÈ¡Òѱä¸ü×ÊÔ´µÄURL¡£·þÎñÆ÷Ò²»á±¨¸æµ±Ç°ÐÞ¶©°æºÅ¡£
ÇëÇóºÍÏìÓ¦µÄXML DTD¶¼ÊÇTBD¡£
×Ô¶¨Ò屨¸æ½«Ö»ÊÊÓÃÓÚÖ§³Ö´Ë±¨¸æµÄ·þÎñÆ÷£¬µ«Êǽ«À´µÄÈí¼þ°æ±¾¿ÉÄܰüº¬Ò»¸ö»ØÍ˵ĴúÂë·¾¶(ÓÅÑŵÄÍË»¯)À´Ö§³ÖÆäËûDeltaV·þÎñÆ÷¡£
¸üÐÂʱ£¬¿Í»§¶Ë½«»á»ñÈ¡(ʹÓÃGETÇëÇó)ÿ¸ö·þÎñÆ÷ÏìÓ¦ÌṩµÄURL¡£
¿ÉÄܵϰ£¬GET(ºÍPUT)²Ù×÷½«»áʹÓÃdiff¸ñʽ´«µÝÄÚÈÝ¡£¸Ã»úÖÆ×ñÑÃûΪHTTPµÄDelta±àÂëµÄÒòÌØÍø²Ý°¸¡£
ʵÌå±êÇ© (etags)
etagÐèÒªÔÚÒ»¸ö×ÊÔ´µÄËùÓа汾Öб£³ÖΨһ¡£ÐҺ㬶԰汾¹ÜÀíϵͳÀ´Ëµ£¬ÕâºÜÈÝÒס£Ã¿¸öetag¿ÉÒÔ¼òµ¥µØÎª×ÊÔ´ËùÔڵIJֿâ½ÚµãID(node-id)
etagͨ³£ÓÃÓÚÉú³Édiff(²îÒì)£¬¿ÉÒԲο¼ÉÏÎÄÌá¼°µÄ²Ý°¸ HTTPÖеÄDelta±àÂë¡£ÏÖÔÚÎÊÌâÊÇÈç¹û»ñÈ¡´æ´¢ÔÚ¿Í»§¶ËµÄÿ¸öÎļþ(²»ÐèÒªÎļþ¼ÐµÄetag£¬ÒòΪÎÒÃÇ´Ó²»¶ÁÈ¡)µÄetag¡£ÔÚ¼ì³ö»ò¸üйý³ÌÖУ¬ºÜ¼òµ¥£ºetag°üº¬ÔÚËù»ñÈ¡µÄÿ¸öÎļþµÄHTTPÏìӦͷÀï¡£
ÎÊÌâµÄÁíÒ»¸ö·½ÃæÊÇÈçºÎ»ñȡһ´ÎÌá½»ºóµÄetag¡£°æ±¾×ÊÔ´ÊÇÔڻ¼ìÈëʱ´´½¨µÄ£¬¶øMERGEÏìӦͷÌṩÁËÒ»ÖÖ»ñÈ¡°æ±¾×ÊÔ´ÊôÐԵķ½·¨£¬etagÒÔ¼°ÆäËûÊôÐÔ¿ÉÒÔͨ¹ý´Ë»úÖÆ»ñÈ¡¡£
±êÇ©ºÍ·ÖÖ§
ÔÚSubversionÖбêÇ©ºÍ·ÖÖ§±»¸´ÖÆ´ÓÒ»¸öÇøÓòµ½ÁíÒ»¸öÇøÓò±»Ö´ÐС£ÀýÈ磺
[.../src/my-project]$ svn cp trunk tags/1.0.3-rc4 [.../src/my-project]$ svn commit |
ÔÚÉÏÃæµÄÀý×ÓÖУ¬tags/1.0.3-RC4 ÏÖÔÚÓ¦¸Ã¿¼ÂÇÖ»¶Á²¢Ê±¿Ì·´Ó³trunkµÄ״̬¡£
ÕâЩ¸±±¾¾ÍÏñÒ»¸öÆÕͨµÄÌá½»´¦Àí¡£ activity ÓÃMKACTIVITY´´½¨£¬¹¤×÷×ÊԴͨ¹ýCHECKOUT
´´½¨£¨ÀýÈçÉÏÃæÔÚÎÒÃǵÄÀý×ÓÖÐ Ä¿±êĿ¼;tags/£©£¬È»ºóÖ´Ðи´ÖƲÙ×÷¡£¸ÃactivityÈ»ºóºÏ²¢µ½ÓÐMERGEÒªÇóµÄÐÅÏ¢¿â¡£
·þÎñÆ÷ÐèÇó
¾¯¸æ: ±¾½ÚÒѹýÆÚ¡£DeltaV²Ý°¸ÒѾÀúÁ˶à¸öÐÞ¶©°æ£¬ÎÒÃÇʹÓõİ汾±ä¸üÁËÒ»²¿·Ö¡£
DAV·½·¨
ΪÁËÄÜÕý³£²Ù×÷£¬·þÎñÆ÷ÐèҪʵÏÖÒÔÏÂWebDAV·½·¨£º
OPTIONS GET DELETE COPY PROPPATCH PROPFIND MKACTIVITY CHECKOUT MERGE REPORT |
µ±Ç°SubversionÐèÒªÏÂÃæµÄ·½·¨£º
CHECKIN UNCHECKOUT UPDATE LABEL VERSION-CONTROL BASELINE-CONTROL MKWORKSPACE |
DAVÊôÐÔ
ÒÔÏÂDeltaVÊôÐÔÐèÒª±»ÊµÏÖ£º
DAV:comment DAV:creator-displayname DAV:supported-method-set DAV:supported-live-property-set DAV:supported-report-set DAV:version-controlled-configuration DAV:checked-in DAV:auto-version£¬ÊǸöÖ»¶ÁµÄ¿ÕÔªËØ(²»Ö§³Ö×Ô¶¯°æ±¾»¯/auto-versioning) DAV:checked-out DAV:predecessor-set Ìáʾ£ºÔÚ¶à¸öǰÇý°æ±¾ÈçºÎºÏ²¢Éú³Éµ¥¸öÐÂÐÞ¶©°æ»úÖÆÉÏ£¬
SubversionµÄÉè¼ÆÎĵµ±íÊö²»ÊǺÜÇå³þ¡£¸ãÃ÷°×Ö®ºó·¢ÏÖ£¬
DAV:predecessors¿ÉÄÜ×îÖÕ°üº¬¶àÓàÁã¸ö»òÒ»¸öǰÇýURL DAV:version-name£¬ (È«¾Ö)ÐÞ¶©°æ±¾ºÅ DAV:checkout-fork DAV:checkin-fork DAV:auto-update DAV:subbaseline-set£¬Ö»¶Á¿ÕÊôÐÔ(²»Ö§³Ö×Ó»ùÏß/sub-baselines) DAV:unreserved£¬±»Éè³ÉF DAV:baseline-controlled-collection DAV:baseline-collection DAV:subactivity-set£¬Ö»¶Á¿ÕÊôÐÔ(²»Ö§³Ö×ӻ/sub-activities) DAV:eclipsed-set£¬×ÜÊÇ¿Õ(ÄÚ²¿³ÉÔ±²»Äܱ»Òþ²Ø) |
ÓëDeltaV¹æ·¶Ïà·´£¬ÏÂÃæµÄ±ØÐëÊôÐÔûÓб»ÊµÏÖ£º
DAV:successor-set£¬»ñÈ¡¸ÃÖµ¼ÆËãÁ¿ºÜ´ó DAV:checkout-set£¬ÊÂʵÉÏÎÒÃÇûÓб»¼ì³öµÄ¼Ç¼£¬¶øÊÇʹÓù¤×÷×ÊÔ´URLÀ´Ìṩ±ØÒªµÄÐÅÏ¢£»
Òò´ËÎÒÃÇûÓмǼÊý¾ÝÀ´Ìî³ä¸ÃÊôÐÔ
DAV:merge-set£¬ MERGEÖ»Ö§³ÖÒ»´ÎÌá½»¡£²¢²»Ö§³Ö¹æ·¶ÀﶨÒåµÄÈÎÒâºÏ²¢ DAV:auto-merge-set £¬µÈͬDAV:merge-set. DAV:activity-version-set£¬½öÓÃÓÚ¹¤×÷×ÊÔ´µÄ»î¶¯£¬ÕâÑù°æ±¾²»ÄÜÊǻµÄÒ»²¿·ÖÒ²ÐíÓ¦¸Ã±»¶¨ÒåΪ¿Õ¼¯£¿ DAV:activity-checkout-set£¬½öÓÃÓÚ¹¤×÷×ÊÔ´µÄ»î¶¯£¬ÎÒÃÇÒ²²»¼Ç¼ÄÄЩ¹¤×÷×ÊÔ´´æÔÚ DAV:activity-set£¬½öÓÃÓÚ¹¤×÷×ÊÔ´µÄ»î¶¯£¬ÕâÑù°æ±¾²»ÄÜÊǻµÄÒ»²¿·ÖÒ²ÐíÓ¦¸Ã±»¶¨ÒåΪ¿Õ¼¯£¿ DAV:version-controlled-binding-set£¬ÎÒÃÇûÓа汾ÀúÊ·×ÊÔ´¸³¸ø´ËÊôÐÔ |
OPTIONS
OPTIONSÇëÇó±íʾ֧³ÖÏÂÎĵÄDAVÌØÐÔ£º
°æ±¾¿ØÖÆ/version-control ¼ì³ö/checkout ¹¤×÷×ÊÔ´working-resource ºÏ²¢/merge »ùÏß/baseline »î¶¯/activity °æ±¾¿ØÖƼ¯/version-controlled-collection |
±¨¸æ(reports)
DAV:supported-report-setÊôÐÔ±íʾ֧³ÖÒÔϱ¨¸æ£º
svn:update-report
svn:log-report
ÕâЩ±¨¸æ½ö¿ÉÓÃÔÚ¹«¹²×ÊÔ´(°æ±¾¿ØÖÆ×ÊÔ´, VCRs)ÉÏ¡£$svn/ÄÚµÄ×ÊÔ´²»¿ÉÓá£
×¢ÒâÊÂÏÌáÐÑ
ÌÖÂÛ³¬Ê±ºÍ×Ô¶¯ÇåÏ´µÄ»î¶¯£¨ÒÔ¼°Ïà¹Ø¹¤×÷×ÊÔ´£©¡£
ÌÖÂÛͨ¹ýµÄmod_dav_svnά»¤ÈÈÊý¾Ý¿â¡£
ÌÖÂÛra_davºÍmod_dav_svnµÄÆäËûʵʩϸÔò¡£
|