Artifact 1f41837fd37179da8c53a2bda067389269840fbe:
Ticket change
[1f41837fd3]
- New ticket 2e924cf9b7 Change recursive add to allow inclusion of files starting with dot.
by
mjanssen on
2009-08-13 18:03:00.
0000: 44 20 32 30 30 39 2d 30 38 2d 31 33 54 31 38 3a D 2009-08-13T18:
0010: 30 33 3a 30 30 0a 4a 20 63 6f 6d 6d 65 6e 74 20 03:00.J comment
0020: 43 75 72 72 65 6e 74 6c 79 5c 73 61 5c 73 72 65 Currently\sa\sre
0030: 63 75 72 73 69 76 65 5c 73 61 64 64 5c 73 69 67 cursive\sadd\sig
0040: 6e 6f 72 65 73 5c 73 64 6f 74 66 69 6c 65 73 2e nores\sdotfiles.
0050: 5c 73 54 68 69 73 5c 73 69 73 5c 73 61 6e 6e 6f \sThis\sis\sanno
0060: 79 69 6e 67 5c 73 77 68 65 6e 5c 73 61 64 64 69 ying\swhen\saddi
0070: 6e 67 5c 73 66 6f 72 5c 73 69 6e 73 74 61 6e 63 ng\sfor\sinstanc
0080: 65 5c 73 61 6e 5c 73 65 63 6c 69 70 73 65 5c 73 e\san\seclipse\s
0090: 70 72 6f 6a 65 63 74 5c 73 6f 6e 5c 73 77 69 6e project\son\swin
00a0: 64 6f 77 73 5c 73 28 65 63 6c 69 70 73 65 5c 73 dows\s(eclipse\s
00b0: 75 73 65 73 5c 73 64 69 72 65 63 74 6f 72 69 65 uses\sdirectorie
00c0: 73 5c 73 73 74 61 72 74 69 6e 67 5c 73 77 69 74 s\sstarting\swit
00d0: 68 5c 73 2e 5c 73 66 6f 72 5c 73 70 72 6f 6a 65 h\s.\sfor\sproje
00e0: 63 74 5c 73 73 65 74 74 69 6e 67 73 29 5c 72 5c ct\ssettings)\r\
00f0: 6e 49 5c 73 70 72 6f 70 6f 73 65 5c 73 74 6f 5c nI\spropose\sto\
0100: 73 61 64 64 5c 73 61 5c 73 66 6c 61 67 5c 73 2d sadd\sa\sflag\s-
0110: 64 6f 74 66 69 6c 65 73 5c 73 74 6f 5c 73 61 64 dotfiles\sto\sad
0120: 64 5c 73 73 6f 5c 73 74 68 61 74 5c 73 77 68 65 d\sso\sthat\swhe
0130: 6e 5c 73 73 70 65 63 69 66 69 65 64 5c 73 2e 66 n\sspecified\s.f
0140: 69 6c 65 73 5c 73 61 6e 64 5c 73 2e 64 69 72 5c iles\sand\s.dir\
0150: 73 77 69 6c 6c 5c 73 62 65 5c 73 61 64 64 65 64 swill\sbe\sadded
0160: 5c 73 61 73 5c 73 77 65 6c 6c 2e 5c 72 5c 6e 46 \sas\swell.\r\nF
0170: 6f 6c 6c 6f 77 69 6e 67 5c 73 64 69 66 66 5c 73 ollowing\sdiff\s
0180: 61 64 64 73 5c 73 74 68 65 5c 73 6f 70 74 69 6f adds\sthe\soptio
0190: 6e 5c 73 74 6f 5c 73 66 6f 73 73 69 6c 5c 73 61 n\sto\sfossil\sa
01a0: 64 64 3a 5c 72 5c 6e 3c 70 72 65 3e 5c 72 5c 6e dd:\r\n<pre>\r\n
01b0: 40 40 5c 73 2d 36 35 2c 32 31 5c 73 2b 36 35 2c @@\s-65,21\s+65,
01c0: 32 34 5c 73 40 40 5c 72 5c 6e 5c 73 2a 2a 5c 73 24\s@@\r\n\s**\s
01d0: 41 6c 6c 5c 73 63 6f 6e 74 65 6e 74 5c 73 6f 66 All\scontent\sof
01e0: 5c 73 74 68 65 5c 73 7a 44 69 72 5c 73 64 69 72 \sthe\szDir\sdir
01f0: 65 63 74 6f 72 79 5c 73 74 6f 5c 73 74 68 65 5c ectory\sto\sthe\
0200: 73 53 46 49 4c 45 5c 73 74 61 62 6c 65 2e 5c 72 sSFILE\stable.\r
0210: 5c 6e 5c 73 2a 2f 5c 72 5c 6e 5c 73 76 6f 69 64 \n\s*/\r\n\svoid
0220: 5c 73 61 64 64 5f 64 69 72 65 63 74 6f 72 79 5f \sadd_directory_
0230: 63 6f 6e 74 65 6e 74 28 63 6f 6e 73 74 5c 73 63 content(const\sc
0240: 68 61 72 5c 73 2a 7a 44 69 72 29 7b 5c 72 5c 6e har\s*zDir){\r\n
0250: 5c 73 5c 73 5c 73 44 49 52 5c 73 2a 64 3b 5c 72 \s\s\sDIR\s*d;\r
0260: 5c 6e 5c 73 5c 73 5c 73 69 6e 74 5c 73 6f 72 69 \n\s\s\sint\sori
0270: 67 53 69 7a 65 3b 5c 72 5c 6e 2b 5c 73 5c 73 69 gSize;\r\n+\s\si
0280: 6e 74 5c 73 64 6f 74 46 6c 61 67 3b 5c 72 5c 6e nt\sdotFlag;\r\n
0290: 5c 73 5c 73 5c 73 73 74 72 75 63 74 5c 73 64 69 \s\s\sstruct\sdi
02a0: 72 65 6e 74 5c 73 2a 70 45 6e 74 72 79 3b 5c 72 rent\s*pEntry;\r
02b0: 5c 6e 5c 73 5c 73 5c 73 42 6c 6f 62 5c 73 70 61 \n\s\s\sBlob\spa
02c0: 74 68 3b 5c 72 5c 6e 2b 5c 73 5c 73 64 6f 74 46 th;\r\n+\s\sdotF
02d0: 6c 61 67 5c 73 3d 5c 73 66 69 6e 64 5f 6f 70 74 lag\s=\sfind_opt
02e0: 69 6f 6e 28 22 64 6f 74 66 69 6c 65 73 22 2c 22 ion("dotfiles","
02f0: 64 22 2c 30 29 21 3d 30 3b 5c 72 5c 6e 5c 73 5c d",0)!=0;\r\n\s\
0300: 72 5c 6e 5c 73 5c 73 5c 73 62 6c 6f 62 5f 7a 65 r\n\s\s\sblob_ze
0310: 72 6f 28 26 70 61 74 68 29 3b 5c 72 5c 6e 5c 73 ro(&path);\r\n\s
0320: 5c 73 5c 73 62 6c 6f 62 5f 61 70 70 65 6e 64 28 \s\sblob_append(
0330: 26 70 61 74 68 2c 5c 73 7a 44 69 72 2c 5c 73 2d &path,\szDir,\s-
0340: 31 29 3b 5c 72 5c 6e 5c 73 5c 73 5c 73 6f 72 69 1);\r\n\s\s\sori
0350: 67 53 69 7a 65 5c 73 3d 5c 73 62 6c 6f 62 5f 73 gSize\s=\sblob_s
0360: 69 7a 65 28 26 70 61 74 68 29 3b 5c 72 5c 6e 5c ize(&path);\r\n\
0370: 73 5c 73 5c 73 64 5c 73 3d 5c 73 6f 70 65 6e 64 s\s\sd\s=\sopend
0380: 69 72 28 7a 44 69 72 29 3b 5c 72 5c 6e 5c 73 5c ir(zDir);\r\n\s\
0390: 73 5c 73 69 66 28 5c 73 64 5c 73 29 7b 5c 72 5c s\sif(\sd\s){\r\
03a0: 6e 5c 73 5c 73 5c 73 5c 73 5c 73 77 68 69 6c 65 n\s\s\s\s\swhile
03b0: 28 5c 73 28 70 45 6e 74 72 79 3d 72 65 61 64 64 (\s(pEntry=readd
03c0: 69 72 28 64 29 29 21 3d 30 5c 73 29 7b 5c 72 5c ir(d))!=0\s){\r\
03d0: 6e 5c 73 5c 73 5c 73 5c 73 5c 73 5c 73 5c 73 63 n\s\s\s\s\s\s\sc
03e0: 68 61 72 5c 73 2a 7a 50 61 74 68 3b 5c 72 5c 6e har\s*zPath;\r\n
03f0: 2d 5c 73 5c 73 5c 73 5c 73 5c 73 5c 73 69 66 28 -\s\s\s\s\s\sif(
0400: 5c 73 70 45 6e 74 72 79 2d 3e 64 5f 6e 61 6d 65 \spEntry->d_name
0410: 5b 30 5d 3d 3d 27 2e 27 5c 73 29 5c 73 63 6f 6e [0]=='.'\s)\scon
0420: 74 69 6e 75 65 3b 5c 72 5c 6e 2b 5c 73 5c 73 5c tinue;\r\n+\s\s\
0430: 73 5c 73 5c 73 5c 73 69 66 28 5c 73 70 45 6e 74 s\s\s\sif(\spEnt
0440: 72 79 2d 3e 64 5f 6e 61 6d 65 5b 30 5d 3d 3d 27 ry->d_name[0]=='
0450: 2e 27 5c 73 26 26 5c 73 21 64 6f 74 46 6c 61 67 .'\s&&\s!dotFlag
0460: 29 5c 73 63 6f 6e 74 69 6e 75 65 3b 5c 72 5c 6e )\scontinue;\r\n
0470: 2b 5c 73 5c 73 5c 73 5c 73 5c 73 5c 73 69 66 28 +\s\s\s\s\s\sif(
0480: 5c 73 73 74 72 63 6d 70 28 70 45 6e 74 72 79 2d \sstrcmp(pEntry-
0490: 3e 64 5f 6e 61 6d 65 2c 5c 73 22 2e 2e 22 29 3d >d_name,\s"..")=
04a0: 3d 30 5c 73 7c 7c 5c 73 5c 73 73 74 72 63 6d 70 =0\s||\s\sstrcmp
04b0: 28 70 45 6e 74 72 79 2d 3e 64 5f 6e 61 6d 65 2c (pEntry->d_name,
04c0: 5c 73 22 2e 22 29 3d 3d 30 5c 73 29 5c 73 63 6f \s".")==0\s)\sco
04d0: 6e 74 69 6e 75 65 3b 5c 72 5c 6e 5c 73 5c 73 5c ntinue;\r\n\s\s\
04e0: 73 5c 73 5c 73 5c 73 5c 73 62 6c 6f 62 5f 61 70 s\s\s\s\sblob_ap
04f0: 70 65 6e 64 66 28 26 70 61 74 68 2c 5c 73 22 2f pendf(&path,\s"/
0500: 25 73 22 2c 5c 73 70 45 6e 74 72 79 2d 3e 64 5f %s",\spEntry->d_
0510: 6e 61 6d 65 29 3b 5c 72 5c 6e 5c 73 5c 73 5c 73 name);\r\n\s\s\s
0520: 5c 73 5c 73 5c 73 5c 73 7a 50 61 74 68 5c 73 3d \s\s\s\szPath\s=
0530: 5c 73 62 6c 6f 62 5f 73 74 72 28 26 70 61 74 68 \sblob_str(&path
0540: 29 3b 5c 72 5c 6e 5c 73 5c 73 5c 73 5c 73 5c 73 );\r\n\s\s\s\s\s
0550: 5c 73 5c 73 69 66 28 5c 73 66 69 6c 65 5f 69 73 \s\sif(\sfile_is
0560: 64 69 72 28 7a 50 61 74 68 29 3d 3d 31 5c 73 29 dir(zPath)==1\s)
0570: 7b 5c 72 5c 6e 5c 73 5c 73 5c 73 5c 73 5c 73 5c {\r\n\s\s\s\s\s\
0580: 73 5c 73 5c 73 5c 73 61 64 64 5f 64 69 72 65 63 s\s\s\sadd_direc
0590: 74 6f 72 79 5f 63 6f 6e 74 65 6e 74 28 7a 50 61 tory_content(zPa
05a0: 74 68 29 3b 5c 72 5c 6e 5c 73 5c 73 5c 73 5c 73 th);\r\n\s\s\s\s
05b0: 5c 73 5c 73 5c 73 7d 65 6c 73 65 5c 73 69 66 28 \s\s\s}else\sif(
05c0: 5c 73 66 69 6c 65 5f 69 73 66 69 6c 65 28 7a 50 \sfile_isfile(zP
05d0: 61 74 68 29 5c 73 29 7b 5c 72 5c 6e 40 40 5c 73 ath)\s){\r\n@@\s
05e0: 2d 31 31 32 2c 31 30 5c 73 2b 31 31 35 2c 31 34 -112,10\s+115,14
05f0: 5c 73 40 40 5c 72 5c 6e 5c 73 2a 2a 5c 72 5c 6e \s@@\r\n\s**\r\n
0600: 5c 73 2a 2a 5c 73 55 73 61 67 65 3a 5c 73 25 66 \s**\sUsage:\s%f
0610: 6f 73 73 69 6c 5c 73 61 64 64 5c 73 46 49 4c 45 ossil\sadd\sFILE
0620: 2e 2e 2e 5c 72 5c 6e 5c 73 2a 2a 5c 72 5c 6e 5c ...\r\n\s**\r\n\
0630: 73 2a 2a 5c 73 4d 61 6b 65 5c 73 61 72 72 61 6e s**\sMake\sarran
0640: 67 65 6d 65 6e 74 73 5c 73 74 6f 5c 73 61 64 64 gements\sto\sadd
0650: 5c 73 6f 6e 65 5c 73 6f 72 5c 73 6d 6f 72 65 5c \sone\sor\smore\
0660: 73 66 69 6c 65 73 5c 73 74 6f 5c 73 74 68 65 5c sfiles\sto\sthe\
0670: 73 63 75 72 72 65 6e 74 5c 73 63 68 65 63 6b 6f scurrent\schecko
0680: 75 74 5c 72 5c 6e 5c 73 2a 2a 5c 73 61 74 5c 73 ut\r\n\s**\sat\s
0690: 74 68 65 5c 73 6e 65 78 74 5c 73 63 6f 6d 6d 69 the\snext\scommi
06a0: 74 2e 5c 72 5c 6e 2b 2a 2a 5c 72 5c 6e 2b 2a 2a t.\r\n+**\r\n+**
06b0: 5c 73 57 68 65 6e 5c 73 61 64 64 69 6e 67 5c 73 \sWhen\sadding\s
06c0: 66 69 6c 65 73 5c 73 72 65 63 75 72 73 69 76 65 files\srecursive
06d0: 6c 79 2c 5c 73 62 79 5c 73 64 65 66 61 75 6c 74 ly,\sby\sdefault
06e0: 5c 73 66 69 6c 65 73 5c 73 6f 72 5c 73 64 69 72 \sfiles\sor\sdir
06f0: 65 63 74 6f 72 69 65 73 5c 72 5c 6e 2b 2a 2a 5c ectories\r\n+**\
0700: 73 73 74 61 72 74 69 6e 67 5c 73 77 69 74 68 5c sstarting\swith\
0710: 73 61 5c 73 2e 5c 73 28 64 6f 74 29 2c 5c 73 77 sa\s.\s(dot),\sw
0720: 69 6c 6c 5c 73 6e 6f 74 5c 73 62 65 5c 73 61 64 ill\snot\sbe\sad
0730: 64 65 64 2e 5c 73 54 68 69 73 5c 73 62 65 68 61 ded.\sThis\sbeha
0740: 76 69 6f 75 72 5c 73 63 61 6e 5c 73 62 65 5c 73 viour\scan\sbe\s
0750: 63 68 61 6e 67 65 64 5c 72 5c 6e 2b 2a 2a 5c 73 changed\r\n+**\s
0760: 62 79 5c 73 74 68 65 5c 73 6f 70 74 69 6f 6e 61 by\sthe\soptiona
0770: 6c 5c 73 2d 64 6f 74 66 69 6c 65 73 5c 73 66 6c l\s-dotfiles\sfl
0780: 61 67 2e 5c 72 5c 6e 5c 73 2a 2f 5c 72 5c 6e 5c ag.\r\n\s*/\r\n\
0790: 73 76 6f 69 64 5c 73 61 64 64 5f 63 6d 64 28 76 svoid\sadd_cmd(v
07a0: 6f 69 64 29 7b 5c 72 5c 6e 5c 73 5c 73 5c 73 69 oid){\r\n\s\s\si
07b0: 6e 74 5c 73 69 3b 5c 72 5c 6e 5c 73 5c 73 5c 73 nt\si;\r\n\s\s\s
07c0: 69 6e 74 5c 73 76 69 64 3b 5c 72 5c 6e 5c 73 5c int\svid;\r\n\s\
07d0: 73 5c 73 42 6c 6f 62 5c 73 72 65 70 6f 3b 5c 72 s\sBlob\srepo;\r
07e0: 5c 6e 3c 2f 70 72 65 3e 0a 4a 20 66 6f 75 6e 64 \n</pre>.J found
07f0: 69 6e 20 39 63 62 65 66 37 61 31 30 34 65 35 64 in 9cbef7a104e5d
0800: 36 31 36 38 38 39 35 61 31 61 62 39 39 61 64 30 6168895a1ab99ad0
0810: 61 36 38 34 38 34 62 65 33 36 39 0a 4a 20 70 72 a68484be369.J pr
0820: 69 76 61 74 65 5f 63 6f 6e 74 61 63 74 20 39 65 ivate_contact 9e
0830: 33 32 35 34 65 36 65 33 63 32 36 34 33 63 63 31 3254e6e3c2643cc1
0840: 34 38 62 61 62 32 64 35 35 66 34 36 62 62 34 63 48bab2d55f46bb4c
0850: 30 34 34 36 66 34 0a 4a 20 73 65 76 65 72 69 74 0446f4.J severit
0860: 79 20 4d 69 6e 6f 72 0a 4a 20 73 74 61 74 75 73 y Minor.J status
0870: 20 4f 70 65 6e 0a 4a 20 74 69 74 6c 65 20 43 68 Open.J title Ch
0880: 61 6e 67 65 5c 73 72 65 63 75 72 73 69 76 65 5c ange\srecursive\
0890: 73 61 64 64 5c 73 74 6f 5c 73 61 6c 6c 6f 77 5c sadd\sto\sallow\
08a0: 73 69 6e 63 6c 75 73 69 6f 6e 5c 73 6f 66 5c 73 sinclusion\sof\s
08b0: 66 69 6c 65 73 5c 73 73 74 61 72 74 69 6e 67 5c files\sstarting\
08c0: 73 77 69 74 68 5c 73 64 6f 74 0a 4a 20 74 79 70 swith\sdot.J typ
08d0: 65 20 46 65 61 74 75 72 65 5f 52 65 71 75 65 73 e Feature_Reques
08e0: 74 0a 4b 20 32 65 39 32 34 63 66 39 62 37 34 65 t.K 2e924cf9b74e
08f0: 37 62 63 37 37 37 63 30 66 38 39 36 65 64 61 30 7bc777c0f896eda0
0900: 33 34 39 65 31 62 66 31 32 33 63 37 0a 55 20 6d 349e1bf123c7.U m
0910: 6a 61 6e 73 73 65 6e 0a 5a 20 32 62 39 65 38 36 janssen.Z 2b9e86
0920: 38 31 62 63 36 37 63 36 36 63 66 36 35 66 30 35 81bc67c66cf65f05
0930: 61 37 36 63 35 34 62 62 30 63 0a a76c54bb0c.