[Fusionforge-commits] r11906 - in trunk: . src/common/widget src/debian src/plugins/gravatar src/plugins/gravatar/common src/plugins/gravatar/packaging/control src/plugins/gravatar/packaging/dirs src/plugins/gravatar/packaging/install src/plugins/scmdarcs src/plugins/scmdarcs/bin src/plugins/scmdarcs/common src/plugins/scmdarcs/db src/plugins/scmdarcs/packaging/install src/plugins/scmsvn/common src/www/news src/www/scm

Roland Mas lolando at libremir.placard.fr.eu.org
Tue Dec 28 14:03:17 CET 2010


Author: lolando
Date: 2010-12-28 14:03:17 +0100 (Tue, 28 Dec 2010)
New Revision: 11906

Added:
   trunk/src/plugins/gravatar/NAME
   trunk/src/plugins/gravatar/packaging/
   trunk/src/plugins/scmdarcs/bin/
   trunk/src/plugins/scmdarcs/db/
Modified:
   trunk/
   trunk/src/common/widget/Widget_MyBookmarks.class.php
   trunk/src/debian/control
   trunk/src/plugins/gravatar/common/gravatarPlugin.class.php
   trunk/src/plugins/gravatar/packaging/control/223plugin-gravatar
   trunk/src/plugins/gravatar/packaging/control/223plugin-gravatar.shortdesc
   trunk/src/plugins/gravatar/packaging/dirs/plugin-gravatar
   trunk/src/plugins/gravatar/packaging/install/plugin-gravatar
   trunk/src/plugins/scmdarcs/bin/db-delete.pl
   trunk/src/plugins/scmdarcs/bin/db-upgrade.pl
   trunk/src/plugins/scmdarcs/common/DarcsPlugin.class.php
   trunk/src/plugins/scmdarcs/db/scmdarcs-init.sql
   trunk/src/plugins/scmdarcs/packaging/install/plugin-scmdarcs
   trunk/src/plugins/scmsvn/common/SVNPlugin.class.php
   trunk/src/www/news/submit.php
   trunk/src/www/scm/browser.php
Log:
Merged from 5.1: a series of patches by Sylvain Le Gall


Property changes on: trunk
___________________________________________________________________
Modified: svn:mergeinfo
   - /trunk:8721-8727
/branches/Branch_5_0:8892,8895,8897-8898,8900,8903-8904,8906-8907,8910,8915,8922,8924,8926,8929,8931-8933,8941,8946,8951,8955,8972-8977,8981,8997,8999,9002,9031-9032,9050,9080-9081,9084-9086,9093-9095,9102-9104,9108,9113-9115,9117-9118,9123,9125,9127-9131,9135-9136,9139,9146,9148-9150,9179-9191,9193-9195,9198,9200,9202,9204,9207,9209,9211,9213,9215,9220-9222,9231,9234-9235,9243,9251,9254,9259,9287,9315,9318,9347-9349,9358,9396,9427,9429,9431-9433,9441-9442,9444-9445,9462,9464,9468,9522-9523,9549,9551-9552,9576-9577,9579,9615,9633-9634,9672-9673,9675-9676,9684,9686-9687,9689,9699,9727,9729,9731,9930-9932,9935,9956,9980,10005-10006,10021,10024,10027,10064,10081-10082,10273,10285,10820-10824,10868,10872,10876-10878,10880,10918,11015,11017,11058-11060,11085-11086,11160-11165,11252-11253,11287,11294,11581,11619-11620,11679,11722-11723
/branches/Branch_4_8:7334-7335,7344-7345,7382,7387,7389-7390,7396,7398,7401-7402,7428-7429,7437,7440,7443,7449-7455,7459,7462,7466,7469-7470,7476-7478,7480,7485,7490-7492,7505,7540,7556-7560,7568,7570-7571,7573,7576,7580,7609-7611,7613,7615,7618,7621-7622,7625-7627,7639,7658,7661,7663-7664,7666-7667,7673,7675,7678,7680,7685,7688-7689,7693,7700,7706-7708,7713,7725,7728-7742,7760,7763-7764,7767,7769-7770,7773,7776,7784-7785,7791,7797,7799,7802-7808,7810-7811,7816,7818,7825-7828,7839,7846-7847,7850,7894,7902,7920-7922,7927-7928,7932,7936-7937,7939,7942,7944-7945,7947,7951,7956,7958,7960,8064,8079-8080,8108,8113,8119,8121,8127-8128,8145,8197,8201-8202,8216,8224,8226,8228,8247-8250,8252,8271-8272,8310-8311,8328,8337,8339-8357,8361,8371,8373-8375,8378-8379,8383-8396,8415,8427-8431,8438-8441,8449,8452-8453,8458,8461,8477-8478,8480,8482,8492,8514,8530,8604-8605,8608,8637,8662,8674,8751,8754,8756,8760-8761,8812,8850,8945,8995,8998,9004-9006,9124,9137,9141,9317,9443,9469,9670,9701,9726,9934,10013
/branches/Branch_5_1:11607-11609,11621,11625,11627,11631,11638,11644,11647-11651,11677,11680-11681,11683-11684,11719-11720,11724,11754,11780,11783,11792,11794,11802,11808-11816,11818,11822-11824,11827-11829,11834-11835,11847,11849,11851-11852,11855,11858,11862,11867,11869-11872,11876
/branches/Branch_4_7:6879,6881,6884,6897,6899,6902,6904,6906,6909,6911,6922,6932,6936,6939,6942,6944,6946-6948,6954,6956,6959,7000-7001,7012,7111,7130-7131,7133-7134,7138,7140-7142,7147-7148,7159-7160,7163,7168,7177,7179,7203,7205,7207,7210,7212,7251-7253,7255,7284,7287,7291,7293,7295-7296,7300,7355,7365-7366,7375-7376,7378,7395,7423-7426,7435,7458,7504,7567,7577,7623-7624,7638,7659-7660,7662,7665,7668,7674,7699,7746-7748,7771,7774,7786,7838

   + /trunk:8721-8727
/branches/Branch_4_7:6879,6881,6884,6897,6899,6902,6904,6906,6909,6911,6922,6932,6936,6939,6942,6944,6946-6948,6954,6956,6959,7000-7001,7012,7111,7130-7131,7133-7134,7138,7140-7142,7147-7148,7159-7160,7163,7168,7177,7179,7203,7205,7207,7210,7212,7251-7253,7255,7284,7287,7291,7293,7295-7296,7300,7355,7365-7366,7375-7376,7378,7395,7423-7426,7435,7458,7504,7567,7577,7623-7624,7638,7659-7660,7662,7665,7668,7674,7699,7746-7748,7771,7774,7786,7838
/branches/Branch_5_1:11607-11609,11621,11625,11627,11631,11638,11644,11647-11651,11677,11680-11681,11683-11684,11719-11720,11724,11754,11780,11783,11792,11794,11802,11808-11816,11818,11822-11824,11827-11829,11834-11835,11847,11849,11851-11852,11855,11858,11862,11867,11869-11872,11876,11880,11893,11902-11905
/branches/Branch_4_8:7334-7335,7344-7345,7382,7387,7389-7390,7396,7398,7401-7402,7428-7429,7437,7440,7443,7449-7455,7459,7462,7466,7469-7470,7476-7478,7480,7485,7490-7492,7505,7540,7556-7560,7568,7570-7571,7573,7576,7580,7609-7611,7613,7615,7618,7621-7622,7625-7627,7639,7658,7661,7663-7664,7666-7667,7673,7675,7678,7680,7685,7688-7689,7693,7700,7706-7708,7713,7725,7728-7742,7760,7763-7764,7767,7769-7770,7773,7776,7784-7785,7791,7797,7799,7802-7808,7810-7811,7816,7818,7825-7828,7839,7846-7847,7850,7894,7902,7920-7922,7927-7928,7932,7936-7937,7939,7942,7944-7945,7947,7951,7956,7958,7960,8064,8079-8080,8108,8113,8119,8121,8127-8128,8145,8197,8201-8202,8216,8224,8226,8228,8247-8250,8252,8271-8272,8310-8311,8328,8337,8339-8357,8361,8371,8373-8375,8378-8379,8383-8396,8415,8427-8431,8438-8441,8449,8452-8453,8458,8461,8477-8478,8480,8482,8492,8514,8530,8604-8605,8608,8637,8662,8674,8751,8754,8756,8760-8761,8812,8850,8945,8995,8998,9004-9006,9124,9137,9141,9317,9443,9469,9670,9701,9726,9934,10013
/branches/Branch_5_0:8892,8895,8897-8898,8900,8903-8904,8906-8907,8910,8915,8922,8924,8926,8929,8931-8933,8941,8946,8951,8955,8972-8977,8981,8997,8999,9002,9031-9032,9050,9080-9081,9084-9086,9093-9095,9102-9104,9108,9113-9115,9117-9118,9123,9125,9127-9131,9135-9136,9139,9146,9148-9150,9179-9191,9193-9195,9198,9200,9202,9204,9207,9209,9211,9213,9215,9220-9222,9231,9234-9235,9243,9251,9254,9259,9287,9315,9318,9347-9349,9358,9396,9427,9429,9431-9433,9441-9442,9444-9445,9462,9464,9468,9522-9523,9549,9551-9552,9576-9577,9579,9615,9633-9634,9672-9673,9675-9676,9684,9686-9687,9689,9699,9727,9729,9731,9930-9932,9935,9956,9980,10005-10006,10021,10024,10027,10064,10081-10082,10273,10285,10820-10824,10868,10872,10876-10878,10880,10918,11015,11017,11058-11060,11085-11086,11160-11165,11252-11253,11287,11294,11581,11619-11620,11679,11722-11723

Modified: svk:merge
   - 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_7:7001
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_7:7012
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_7:7291
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_7:7458
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_7:7623
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_7:7624
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_7:7786
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_7:7838
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:10013
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7335
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7344
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7345
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7396
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7402
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7455
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7459
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7469
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7470
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7476
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7480
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7505
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7540
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7557
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7559
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7560
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7580
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7609
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7615
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7618
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7621
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7622
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7626
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7627
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7708
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7713
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7725
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7729
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7730
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7731
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7732
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7733
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7734
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7737
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7738
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7739
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7742
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7760
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7763
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7764
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7767
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7769
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7773
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7776
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7784
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7785
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7797
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7799
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7811
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7826
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7827
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7828
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7839
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7951
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7958
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7960
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8108
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8113
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8119
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8128
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8145
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8202
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8216
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8224
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8226
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8250
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8337
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8357
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8371
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8375
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8379
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8396
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8415
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8427
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8431
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8441
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8449
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8453
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8530
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8604
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8605
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8608
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8637
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8751
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8756
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8761
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:9141
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:10006
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:10021
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:10064
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:10082
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:10824
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:11017
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:11060
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:11165
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:11253
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:11294
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:8895
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:8898
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:8900
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:8941
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9115
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9118
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9131
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9136
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9139
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9150
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9188
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9195
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9198
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9202
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9207
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9209
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9213
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9243
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9254
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9358
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9396
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9427
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9433
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9549
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9552
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9579
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9634
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9675
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9676
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9729
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9731
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9932
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9980
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:11621
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:11627
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:11631
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:11638
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:11651
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:11684
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:11724
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:11754
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:11794
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:11802
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:11818
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:11835
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:11855
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:11858
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:11872
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:11876
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/trunk:8727

   + 9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_7:7001
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_7:7012
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_7:7291
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_7:7458
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_7:7623
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_7:7624
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_7:7786
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_7:7838
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:10013
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7335
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7344
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7345
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7396
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7402
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7455
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7459
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7469
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7470
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7476
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7480
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7505
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7540
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7557
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7559
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7560
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7580
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7609
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7615
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7618
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7621
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7622
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7626
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7627
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7708
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7713
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7725
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7729
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7730
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7731
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7732
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7733
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7734
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7737
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7738
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7739
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7742
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7760
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7763
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7764
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7767
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7769
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7773
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7776
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7784
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7785
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7797
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7799
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7811
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7826
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7827
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7828
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7839
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7951
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7958
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:7960
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8108
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8113
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8119
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8128
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8145
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8202
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8216
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8224
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8226
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8250
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8337
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8357
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8371
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8375
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8379
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8396
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8415
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8427
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8431
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8441
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8449
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8453
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8530
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8604
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8605
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8608
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8637
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8751
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8756
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:8761
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_4_8:9141
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:10006
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:10021
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:10064
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:10082
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:10824
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:11017
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:11060
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:11165
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:11253
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:11294
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:8895
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:8898
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:8900
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:8941
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9115
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9118
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9131
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9136
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9139
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9150
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9188
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9195
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9198
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9202
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9207
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9209
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9213
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9243
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9254
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9358
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9396
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9427
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9433
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9549
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9552
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9579
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9634
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9675
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9676
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9729
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9731
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9932
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_0:9980
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:11621
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:11627
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:11631
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:11638
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:11651
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:11684
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:11724
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:11754
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:11794
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:11802
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:11818
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:11835
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:11855
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:11858
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:11872
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:11876
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/branches/Branch_5_1:11905
9d84d37e-dcb1-4aad-b103-6f3d92f53bf6:/trunk:8727


Modified: trunk/src/debian/control
===================================================================
--- trunk/src/debian/control	2010-12-28 10:22:46 UTC (rev 11905)
+++ trunk/src/debian/control	2010-12-28 13:03:17 UTC (rev 11906)
@@ -319,6 +319,19 @@
  declare a list of other FusionForge sites, and search for projects
  hosted on these forges from your own.
 
+Package: fusionforge-plugin-gravatar
+Architecture: all
+Depends: gforge-common, , gforge-db-postgresql | gforge-db, php5-cli, ${misc:Depends}
+Description: collaborative development tool - Gravatar plugin
+ FusionForge provides many tools to aid collaboration in a
+ development project, such as bug-tracking, task management,
+ mailing-lists, SCM repository, forums, support request helper,
+ web/FTP hosting, release management, etc. All these services are
+ integrated into one web site and managed through a web interface.
+ .
+ This plugin contains the gravatar plugin of FusionForge. It allows each
+ FusionForge user to have its gravatar icon displayed.
+
 Package: fusionforge-plugin-hudson
 Architecture: all
 Depends: gforge-common, gforge-db-postgresql | gforge-db, gforge-web-apache2 | gforge-web, gforge-shell-postgresql | gforge-shell, php5-cli, ${misc:Depends}, libjs-scriptaculous

Copied: trunk/src/plugins/gravatar/NAME (from rev 11905, branches/Branch_5_1/src/plugins/gravatar/NAME)
===================================================================
--- trunk/src/plugins/gravatar/NAME	                        (rev 0)
+++ trunk/src/plugins/gravatar/NAME	2010-12-28 13:03:17 UTC (rev 11906)
@@ -0,0 +1 @@
+Gravatar

Modified: trunk/src/plugins/gravatar/common/gravatarPlugin.class.php
===================================================================
--- trunk/src/plugins/gravatar/common/gravatarPlugin.class.php	2010-12-28 10:22:46 UTC (rev 11905)
+++ trunk/src/plugins/gravatar/common/gravatarPlugin.class.php	2010-12-28 13:03:17 UTC (rev 11906)
@@ -55,7 +55,7 @@
 
 			$url = 'http://www.gravatar.com/avatar/';
 			if (isset($_SERVER['HTTPS']))
-				$url = 'https://secure.gravatar.com/avatar';
+				$url = 'https://secure.gravatar.com/avatar/';
 
 			if ($size == 'l') 
 				$usize = '130';

Modified: trunk/src/plugins/scmdarcs/common/DarcsPlugin.class.php
===================================================================
--- trunk/src/plugins/scmdarcs/common/DarcsPlugin.class.php	2010-12-28 10:22:46 UTC (rev 11905)
+++ trunk/src/plugins/scmdarcs/common/DarcsPlugin.class.php	2010-12-28 13:03:17 UTC (rev 11906)
@@ -42,6 +42,27 @@
 		return forge_get_config('default_server', 'scmdarcs') ;
 	}
 
+	function getRootRepositories ($project) {
+		return (forge_get_config('repos_path', 'scmdarcs') . '/' . $project->getUnixName());
+	}
+
+	function getRepositories ($project) {
+		$res = array();
+		$toprepo = $this->getRootRepositories($project);
+		if (is_dir($toprepo))
+		{
+			foreach (scandir($toprepo) as $repo_name)
+			{
+				$repo = $toprepo . '/' . $repo_name;
+				if (is_dir($repo) && is_dir($repo . '/_darcs'))
+				{
+					$res[] = $repo_name;
+				}
+			}
+		}
+		return $res;
+	}
+
 	function printShortStats ($params) {
 		$project = $this->checkParams ($params) ;
 		if (!$project) {
@@ -67,6 +88,40 @@
 		return '<p>' . _('Documentation for Darcs is available <a href="http://darcs.net/">here</a>.') . '</p>';
 	}
 
+ 	function getInstructionForDarcs ($project, $rw) {
+ 		$repo_names = $this->getRepositories($project);
+ 		if (count($repo_names) > 0)
+ 		{
+ 			$default_repo = "REPO";
+ 			if (count($repo_names) == 1)
+ 			{
+ 				$default_repo = $repo_names[0];
+ 			}
+ 			if ($rw)
+ 			{
+ 				$url = $project->getSCMBox() . ':'. $this->getRootRepositories($project) . '/' . $default_repo;
+ 			}
+ 			else
+ 			{
+ 				$url = util_make_url ('/anonscm/darcs/'.$project->getUnixName().'/' . $default_repo);
+			}
+			$b = '<p><tt>darcs get ' . $url . '</tt></p>';
+ 			if (count($repo_names) > 1)
+ 			{
+ 				$b .= _('<p>where REPO can be: ') . implode(_(', '), $repo_names) . '</p>';
+ 			}
+ 		}
+ 		else if (is_dir($this->getRootRepositories($project)))
+ 		{
+ 			$b = _('<p><em>No repositories defined.</em></p>');
+ 		}
+ 		else
+ 		{
+ 			$b = _('<p><em>Repository not yet created, wait an hour.</em></p>');
+ 		};
+ 		return $b ;
+ 	}
+ 
 	function getInstructionsForAnon ($project) {
 		$b = '<h2>';
 		$b .=  _('Anonymous Darcs Access');
@@ -74,8 +129,7 @@
 		$b .= '<p>';
 		$b .=  _('This project\'s Darcs repository can be checked out through anonymous access with the following command.');
 		$b .= '</p>';
-		$b .= '<p>' ;
-		$b .= '<tt>darcs get '.util_make_url ('/anonscm/darcs/'.$project->getUnixName().'/').'</tt>';
+		$b .= $this->getInstructionForDarcs($project, false);
 		$b .= '</p>';
 		return $b ;
 	}
@@ -87,7 +141,7 @@
 		$b .= '<p>';
 		$b .= ('Only project developers can access the Darcs tree via this method. SSH must be installed on your client machine. Substitute <i>developername</i> with the proper values. Enter your site password when prompted.');
 		$b .= '</p>';
-		$b .= '<p><tt>darcs get '.$project->getSCMBox() . ':'. forge_get_config('repos_path', 'scmdarcs') .'/'. $project->getUnixName().'/ .</tt></p>' ;
+		$b .= $this->getInstructionForDarcs($project, true);
 		return $b ;
 	}
 
@@ -111,11 +165,21 @@
 		$b .= '<p>';
 		$b .= _('Browsing the Darcs tree gives you a view into the current status of this project\'s code. You may also view the complete histories of any file in the repository.');
 		$b .= '</p>';
-		$b .= '<p>[' ;
-		$b .= util_make_link ("/scm/browser.php?group_id=".$project->getID(),
-				      _('Browse Darcs Repository')
-			) ;
-		$b .= ']</p>' ;
+ 		$repo_names = $this->getRepositories($project);
+ 		if (count($repo_names) > 0)
+ 		{
+ 			foreach ($repo_names as $repo_name)
+ 			{
+ 				$b .= '<p>[' ;
+ 				$b .= util_make_link ("/scm/browser.php?group_id=".$project->getID()."&repo_name=".$repo_name,
+ 									_('Browse Darcs Repository '. $repo_name));
+ 				$b .= ']</p>' ;
+ 			}
+ 		}
+ 		else
+ 		{
+ 			$b .= _('<p>No repositories to browse</p>');
+ 		}
 		return $b ;
 	}
 
@@ -170,7 +234,10 @@
 		
 		if ($project->usesPlugin ($this->name)) {
 			if ($this->browserDisplayable ($project)) {
-				print '<iframe src="'.util_make_url ("/plugins/scmdarcs/cgi-bin/darcsweb.cgi?r=".$project->getUnixName()).'" frameborder="no" width=100% height=700></iframe>' ;
+				print '<iframe src="'.
+					util_make_url ("/plugins/scmdarcs/cgi-bin/darcsweb.cgi?r=".
+					$project->getUnixName()). '/' . $params['repo_name'] .
+					'" frameborder="no" width=100% height=700></iframe>' ;
 			}
 		}
 	}
@@ -185,23 +252,74 @@
 			return false;
 		}
 
-		$repo = forge_get_config('repos_path', 'scmdarcs') . '/' . $project->getUnixName() ;
+		$toprepo = $this->getRootRepositories($project);
 		$unix_group = 'scm_' . $project->getUnixName() ;
 
-		if (!is_dir ($repo."/_darcs")) {
-			system ("mkdir -p $repo") ;
-			system ("cd $repo ; darcs init >/dev/null") ;
-			system ("find $repo -type d | xargs chmod g+s") ;
+		system("chmod g+ws $toprepo");
+
+		$result = db_query_params(
+			"SELECT repo_name, clone_repo_name FROM plugin_scmdarcs_create_repos WHERE group_id=$1",
+			array($project->getID()));
+		if (!$result)
+		{
+			echo "Error while retrieving darcs repository to create\n";
 		}
-		
-		system ("chgrp -R $unix_group $repo") ;
-		if ($project->enableAnonSCM()) {
-			system ("chmod -R g+wX,o+rX-w $repo") ;
-		} else {
-			system ("chmod -R g+wX,o-rwx $repo") ;
+		else
+		{
+			while ($res = db_fetch_array($result))
+			{
+				$repo = $toprepo . '/' . $res['repo_name'];
+				$clone_repo = NULL;
+				if ($res['clone_repo_name'] != '')
+				{
+					$clone_repo = $toprepo . '/' . $res['clone_repo_name'];
+				}
+				if (!is_dir ($repo."/_darcs")) {
+					system ("mkdir -p '$repo'") ;
+					system ("cd $repo ; darcs init >/dev/null") ;
+					if ($clone_repo)
+					{
+						system ("darcs fetch '$clone_repo'") ;
+					}
+					system ("find $repo -type d | xargs chmod g+s") ;
+				}
+				$result1 = db_query_params(
+					"DELETE FROM plugin_scmdarcs_create_repos WHERE group_id=$1 AND repo_name=$2",
+					array($project->getID(), $res['repo_name']));
+				if (!$result1)
+				{
+					echo "Cannot remove scheduling of darcs repository creation ".$res['repo_name']."\n";
+				}
+			}
 		}
+	
+			
+		foreach ($this->getRepositories($project) as $repo_name)
+		{
+			$repo =  $toprepo . '/' . $repo_name ;
+
+			system ("chgrp -R $unix_group $repo") ;
+			if ($project->enableAnonSCM()) {
+				system ("chmod -R g+wX,o+rX-w $repo") ;
+			} else {
+				system ("chmod -R g+wX,o-rwx $repo") ;
+			}
+		}
 	}
 
+	function darcswebRepository ($project, $repo_name, $repo_url, $repo_dir) {
+			$classname = preg_replace ('/\W/', '_', 'repo_' . $repo_name) ;
+			return ("class $classname:\n"
+				."\trepodir = '$repo_dir'\n"
+				."\treponame = '$repo_name'\n"
+				."\t".'repodesc = """Repository ' . $repo_name . ' of '.$project->getPublicName().'"""'."\n"
+				."\trepourl = '" . util_make_url ('/anonscm/darcs/' . $repo_url) . "'\n"
+				."\trepoprojurl = '" . util_make_url ('/projects/' . $repo_url) . "'\n"
+				."\trepoencoding = 'utf8'\n"
+				. "\n") ;
+	}
+
+
 	function updateRepositoryList ($params) {
 		$groups = $this->getGroups () ;
 		$list = array () ;
@@ -222,18 +340,25 @@
 			. "\n") ;
 
 		foreach ($list as $project) {
-			$classname = str_replace ('-', '_',
-						  'repo_' . $project->getUnixName()) ;
-			
-			$repo = forge_get_config('repos_path', 'scmdarcs') . '/' . $project->getUnixName() ;
-			fwrite ($f, "class $classname:\n"
-				."\treponame = '".$project->getUnixName()."'\n"
-				."\t".'repodesc = """'.$project->getPublicName().'"""'."\n"
-				."\trepodir = '$repo'\n"
-				."\trepourl = '" . util_make_url ('/anonscm/darcs/'.$project->getUnixName().'/') . "'\n"
-				."\trepoprojurl = '" . util_make_url ('/projects/'.$project->getUnixName().'/') . "'\n"
-				."\trepoencoding = 'utf8'\n"
-				. "\n") ;
+			$unix_name = $project->getUnixName();
+			$toprepo = $this->getRootRepositories($project);
+			$repo_names = $this->getRepositories($project);
+			foreach ($repo_names as $repo_name) {
+				if ($repo_name == $unix_name)
+				{
+					# Default repository name, we create a default entry for it
+					fwrite ($f,
+						$this->darcswebRepository($project, 
+																			"$unix_name", 
+																			"$unix_name/$repo_name", 
+																			"$toprepo/$repo_name"));
+				}
+				fwrite ($f, 
+					$this->darcswebRepository($project, 
+																		"$unix_name/$repo_name", 
+																		"$unix_name/$repo_name", 
+																		"$toprepo/$repo_name"));
+			}
 		}
 		fclose ($f) ;
 		chmod ($fname.'.new', 0644) ;
@@ -261,8 +386,9 @@
 			return false;
 		}
 
+		# TODO: multi dir
 		$toprepo = forge_get_config('repos_path', 'scmdarcs') ;
-		$repo = $toprepo . '/' . $project->getUnixName() ;
+		$repo = $this->getRootRepositories($project);
 
 		if (!is_dir ($repo)) {
 			unlink ($tarball) ;
@@ -320,19 +446,10 @@
 			$usr_updates = array () ;
 			$usr_deletes = array ();
 		
-			$repo = forge_get_config('repos_path', 'scmdarcs') . '/' . $project->getUnixName() ;
-			if (!is_dir ($repo) || !is_dir ("$repo/_darcs")) {
-				echo "No repository\n" ;
-				db_rollback () ;
-				return false ;
-			}
-		
+			$toprepo = $this->getRootRepositories($project) ;
 			$from_date = date("c", $start_time);
 			$to_date   = date("c", $end_time);
-			$pipe = popen("darcs changes --repodir='$repo' "
-				      ."--match 'date \"between $from_date and $to_date\"' "
-				      ."--xml -s\n", 'r');
-		
+
 			// cleaning stats_cvs_* table for the current day
 			$res = db_query_params ('DELETE FROM stats_cvs_group WHERE month=$1 AND day=$2 AND group_id=$3',
 						array ($month_string,
@@ -354,26 +471,44 @@
 				return false ;
 			}
 		
-			$xml_parser = xml_parser_create();
-			xml_set_element_handler($xml_parser, "DarcsPluginStartElement", "DarcsPluginEndElement");
-		
-			// Analyzing history stream
-			while (!feof($pipe) &&
-			       $data = fgets ($pipe, 4096)) {
-				
-				if (!xml_parse ($xml_parser, $data, feof ($pipe))) {
-					debug("Unable to parse XML with error " .
-					      xml_error_string(xml_get_error_code($xml_parser)) .
-					      " on line " .
-					      xml_get_current_line_number($xml_parser));
+			foreach ($this->getRepositories($project) as $repo_name)
+			{
+				$repo = $toprepo . '/' . $repo_name;
+				if (!is_dir ($repo) || !is_dir ("$repo/_darcs")) {
+					echo "No repository $repo\n" ;
 					db_rollback () ;
 					return false ;
-					break;
 				}
+				else
+				{
+					echo "$repo\n";
+				}
+		
+				$pipe = popen("darcs changes --repodir='$repo' "
+								."--match 'date \"between $from_date and $to_date\"' "
+								."--xml -s\n", 'r');
+			
+				$xml_parser = xml_parser_create();
+				xml_set_element_handler($xml_parser, "DarcsPluginStartElement", "DarcsPluginEndElement");
+			
+				// Analyzing history stream
+				while (!feof($pipe) &&
+							 $data = fgets ($pipe, 4096)) {
+					
+					if (!xml_parse ($xml_parser, $data, feof ($pipe))) {
+						debug("Unable to parse XML with error " .
+									xml_error_string(xml_get_error_code($xml_parser)) .
+									" on line " .
+									xml_get_current_line_number($xml_parser));
+						db_rollback () ;
+						return false ;
+						break;
+					}
+				}
+				
+				xml_parser_free ($xml_parser);
 			}
 			
-			xml_parser_free ($xml_parser);
-			
 			// inserting group results in stats_cvs_groups
 		
 			if (!db_query_params ('INSERT INTO stats_cvs_group (month,day,group_id,checkouts,commits,adds) VALUES ($1,$2,$3,$4,$5,$6)',
@@ -455,7 +590,98 @@
 			db_commit();
 		}
 	}
-  }	
+
+	function printAdminPage ($params) {
+		parent::printAdminPage($params);
+
+		$project = $this->checkParams($params);
+		if (!$project)
+		{
+			return false;
+		}
+
+		if ($project->usesPlugin($this->name))
+		{
+			$result = db_query_params(
+				"SELECT repo_name FROM plugin_scmdarcs_create_repos WHERE group_id=$1",
+				array($project->getID()));
+			if ($result && db_numrows($result) > 0)
+			{
+				$nm = array ();
+				while ($res = db_fetch_array($result))
+				{
+					array_push($nm, $res['repo_name']);
+				}
+				print '<p><strong>'._('Repository to be created: ') . '</strong>' . 
+					implode(_(', '), $nm) . '</p>';
+			}
+
+			print '<p><strong>Create new repository:</strong></p>';
+			print '<p>'._('Repository name: ').
+				'<input type="string" name="scm_create_repo_name" size=16 maxlength=128 /></p>';
+			print '<p>'._('Clone: ').
+				'<select name="scm_clone_repo_name">';
+			print '<option value="">&lt;none&gt;</option>';
+			foreach ($this->getRepositories($project) as $repo_name)
+			{
+				print '<option value="'.$repo_name.'">'.$repo_name.'</option>';
+			}
+			print '</select></p>';
+		}
+	}
+
+	function adminUpdate ($params) {
+		parent::adminUpdate($params);
+
+		$project = $this->checkParams($params);
+		if (!$project)
+		{
+			return false;
+		}
+
+		$new_repo_name = $params['scm_create_repo_name'];
+		$clone_repo_name = $params['scm_clone_repo_name'];
+		if ($new_repo_name != '')
+		{
+			$repo_names = $this->getRepositories($project);
+			if (in_array($new_repo_name, $repo_names))
+			{
+				html_error_top(_("Repository $new_repo_name already exists"));
+				return false;
+			}
+
+			if ($clone_repo_name != '' && !in_array($clone_repo_name, $repo_names))
+			{
+				html_error_top(_("Clone repository $clone_repo_name doesn't exist"));
+				return false;
+			}
+			if ($clone_repo_name == '<none>')
+			{
+				$clone_repo_name = '';
+			}
+
+			if (!preg_match('/^[\w][-_\w\d\.]+$/', $new_repo_name))
+			{
+				html_error_top("Invalid repository name $new_repo_name");
+				return false;
+			}
+
+			db_begin ();
+			if (!db_query_params ('INSERT INTO plugin_scmdarcs_create_repos (group_id,repo_name,clone_repo_name) 
+				VALUES ($1,$2,$3)',
+				array($project->getID(), $new_repo_name, $clone_repo_name)))
+			{
+				html_error_top("SQL error while scheduling new repository $new_repo_name");
+				db_rollback () ;
+				return false ;
+			}
+			db_commit ();
+
+			html_feedback_top(_("Repository $new_repo_name schedule for creation"));
+		}
+	}
+
+}	
 		
 function DarcsPluginStartElement($parser, $name, $attrs) {
 	global $last_user, $commits, 
@@ -464,6 +690,18 @@
 	switch($name) {
 	case "PATCH":
 		$last_user = $attrs['AUTHOR'];
+		if (!array_key_exists($last_user, $usr_deletes))
+		{
+			$usr_deletes[$last_user] = 0;
+		}
+		if (!array_key_exists($last_user, $usr_updates))
+		{
+			$usr_updates[$last_user] = 0;
+		}
+		if (!array_key_exists($last_user, $usr_adds))
+		{
+			$usr_adds[$last_user] = 0;
+		}
 		$commits++;
 		break;
 	case "REMOVE_FILE":

Modified: trunk/src/plugins/scmdarcs/packaging/install/plugin-scmdarcs
===================================================================
--- trunk/src/plugins/scmdarcs/packaging/install/plugin-scmdarcs	2010-12-28 10:22:46 UTC (rev 11905)
+++ trunk/src/plugins/scmdarcs/packaging/install/plugin-scmdarcs	2010-12-28 13:03:17 UTC (rev 11906)
@@ -1,3 +1,5 @@
+plugins/scmdarcs/bin/*		usr/share/gforge/plugins/scmdarcs/bin/
 plugins/scmdarcs/common/*               usr/share/gforge/plugins/scmdarcs/common/
+plugins/scmdarcs/db/*		usr/share/gforge/plugins/scmdarcs/lib/
 plugins/scmdarcs/etc/plugins/scmdarcs/* etc/gforge/plugins/scmdarcs/
 plugins/scmdarcs/etc/*.ini 		etc/@PACKAGE@/config.ini.d/

Modified: trunk/src/plugins/scmsvn/common/SVNPlugin.class.php
===================================================================
--- trunk/src/plugins/scmsvn/common/SVNPlugin.class.php	2010-12-28 10:22:46 UTC (rev 11905)
+++ trunk/src/plugins/scmsvn/common/SVNPlugin.class.php	2010-12-28 13:03:17 UTC (rev 11906)
@@ -79,6 +79,19 @@
 		return '<p>' . _('Documentation for Subversion (sometimes referred to as "SVN") is available <a href="http://svnbook.red-bean.com/">here</a>.') . '</p>';
 	}
 
+	function topModule ($project) {
+		// Check toplevel module presence
+		$repo = 'file://' . forge_get_config('repos_path', $this->name).'/'.$project->getUnixName().'/';
+		$res = array ();
+		$module = 'trunk';
+		if (!(exec("svn ls '$repo'", $res) && in_array($module.'/', $res)))
+		{
+			$module = '';
+		}
+
+		return '/'.$module;
+	}
+
 	function getInstructionsForAnon ($project) {
 		$b = '<h2>' . _('Anonymous Subversion Access') . '</h2>';
 		$b .= '<p>';
@@ -86,11 +99,12 @@
 		$b .= '</p>';
 
 		$b .= '<p>' ;
+		$module = $this->topModule($project);
 		if (forge_get_config('use_ssh', 'scmsvn')) {
-			$b .= '<tt>svn checkout svn://'.$project->getSCMBox().$this->svn_root.'/'.$project->getUnixName().'/trunk</tt><br />';
+			$b .= '<tt>svn checkout svn://'.$project->getSCMBox().$this->svn_root.'/'.$project->getUnixName().$module.'</tt><br />';
 		}
 		if (forge_get_config('use_dav', 'scmsvn')) {
-			$b .= '<tt>svn checkout --username '.forge_get_config('anonsvn_login', 'scmsvn').' http'.((forge_get_config('use_ssl', 'scmsvn')) ? 's' : '').'://' . $project->getSCMBox(). $this->svn_root .'/'. $project->getUnixName() .'/trunk</tt><br/><br/>';
+			$b .= '<tt>svn checkout --username '.forge_get_config('anonsvn_login', 'scmsvn').' http'.((forge_get_config('use_ssl', 'scmsvn')) ? 's' : '').'://' . $project->getSCMBox(). $this->svn_root .'/'. $project->getUnixName() .$module.'</tt><br/><br/>';
 			$b .= _('The password is ').forge_get_config('anonsvn_password', 'scmsvn').'<br/>';
 		}
 		$b .= '</p>';
@@ -99,6 +113,9 @@
 
 	function getInstructionsForRW ($project) {
 		$b = '' ;
+
+		$module = $this->topModule($project);
+
 		if (session_loggedin()) {
 			$u =& user_get_object(user_getid()) ;
 			$d = $u->getUnixName() ;
@@ -109,7 +126,7 @@
 				$b .= '<p>';
 				$b .= _('Only project developers can access the SVN tree via this method. SSH must be installed on your client machine. Enter your site password when prompted.');
 				$b .= '</p>';
-				$b .= '<p><tt>svn checkout svn+ssh://'.$d.'@' . $project->getSCMBox() . $this->svn_root .'/'. $project->getUnixName().'/trunk</tt></p>' ;
+				$b .= '<p><tt>svn checkout svn+ssh://'.$d.'@' . $project->getSCMBox() . $this->svn_root .'/'. $project->getUnixName().$module.'</tt></p>' ;
 			}
 			if (forge_get_config('use_dav', 'scmsvn')) {
 				$b .= '<h2>';
@@ -118,7 +135,7 @@
 				$b .= '<p>';
 				$b .= _('Only project developers can access the SVN tree via this method. Enter your site password when prompted.');
 				$b .= '</p>';
-				$b .= '<p><tt>svn checkout --username '.$d.' http'.((forge_get_config('use_ssl', 'scmsvn')) ? 's' : '').'://'. $project->getSCMBox() . $this->svn_root .'/'.$project->getUnixName().'/trunk</tt></p>' ;
+				$b .= '<p><tt>svn checkout --username '.$d.' http'.((forge_get_config('use_ssl', 'scmsvn')) ? 's' : '').'://'. $project->getSCMBox() . $this->svn_root .'/'.$project->getUnixName().$module.'</tt></p>' ;
 			}
 		} else {
 			if (forge_get_config('use_ssh', 'scmsvn')) {
@@ -128,7 +145,7 @@
 				$b .= '<p>';
 				$b .= _('Only project developers can access the SVN tree via this method. SSH must be installed on your client machine. Substitute <i>developername</i> with the proper values. Enter your site password when prompted.');
 				$b .= '</p>';
-				$b .= '<p><tt>svn checkout svn+ssh://<i>'._('developername').'</i>@' . $project->getSCMBox() . $this->svn_root .'/'. $project->getUnixName().'/trunk</tt></p>' ;
+				$b .= '<p><tt>svn checkout svn+ssh://<i>'._('developername').'</i>@' . $project->getSCMBox() . $this->svn_root .'/'. $project->getUnixName().$module.'</tt></p>' ;
 			}
 			if (forge_get_config('use_dav', 'scmsvn')) {
 				$b .= '<h2>';
@@ -137,7 +154,7 @@
 				$b .= '<p>';
 				$b .= _('Only project developers can access the SVN tree via this method. Substitute <i>developername</i> with the proper values. Enter your site password when prompted.');
 				$b .= '</p>';
-				$b .= '<p><tt>svn checkout --username <i>'._('developername').'</i> http'.((forge_get_config('use_ssl', 'scmsvn')) ? 's' : '').'://'. $project->getSCMBox() . $this->svn_root .'/'.$project->getUnixName().'/trunk</tt></p>' ;
+				$b .= '<p><tt>svn checkout --username <i>'._('developername').'</i> http'.((forge_get_config('use_ssl', 'scmsvn')) ? 's' : '').'://'. $project->getSCMBox() . $this->svn_root .'/'.$project->getUnixName().$module.'</tt></p>' ;
 			}
 		}
 		return $b ;

Modified: trunk/src/www/news/submit.php
===================================================================
--- trunk/src/www/news/submit.php	2010-12-28 10:22:46 UTC (rev 11905)
+++ trunk/src/www/news/submit.php	2010-12-28 13:03:17 UTC (rev 11906)
@@ -91,34 +91,31 @@
 			}
 
 			/*
-				Insert the row into the db if it's a generic message
-				OR this person is an admin for the group involved
+			  create a new discussion forum without a default msg
+			  if one isn't already there
 			*/
-
-	   			/*
-	   				create a new discussion forum without a default msg
-	   				if one isn't already there
-	   			*/
-
-				db_begin();
-				$f=new Forum(group_get_object(forge_get_config('news_group')));
-				if (!$f->create(preg_replace('/[^_\.0-9a-z-]/','-', strtolower($summary)),$details,1,'',0,0)) {
-					db_rollback();
-					exit_error($f->getErrorMessage(),'news');
-				}
-	   			$new_id=$f->getID();
-				$sql='INSERT INTO news_bytes (group_id,submitted_by,is_approved,post_date,forum_id,summary,details) 
+			
+			db_begin();
+			$g=group_get_object(forge_get_config('news_group'));
+			$f=new Forum($g);
+			if (!$f->create(preg_replace('/[^_\.0-9a-z-]/','-', strtolower($summary)),$details,1,'',0,0)) {
+				db_rollback();
+				exit_error($f->getErrorMessage(),'news');
+			}
+			$g->normalizeAllRoles();
+			$new_id=$f->getID();
+			$sql='INSERT INTO news_bytes (group_id,submitted_by,is_approved,post_date,forum_id,summary,details) 
  VALUES ($1, $2, $3, $4, $5, $6, $7)';
-				$result=db_query_params($sql,
-					array($group_id, user_getid(), 0, time(), $new_id, htmlspecialchars($summary), $details));
-				if (!$result) {
-					db_rollback();
-					form_release_key(getStringFromRequest('form_key'));
-					$error_msg = _('ERROR doing insert');
-				} else {
-					db_commit();
-					$feedback = _('News Added.');
-	   			}
+			$result=db_query_params($sql,
+						array($group_id, user_getid(), 0, time(), $new_id, htmlspecialchars($summary), $details));
+			if (!$result) {
+				db_rollback();
+				form_release_key(getStringFromRequest('form_key'));
+				$error_msg = _('ERROR doing insert');
+			} else {
+				db_commit();
+				$feedback = _('News Added.');
+			}
 		} else {
 			form_release_key(getStringFromRequest('form_key'));
 			$error_msg = _('ERROR - both subject and body are required');

Modified: trunk/src/www/scm/browser.php
===================================================================
--- trunk/src/www/scm/browser.php	2010-12-28 10:22:46 UTC (rev 11905)
+++ trunk/src/www/scm/browser.php	2010-12-28 13:03:17 UTC (rev 11906)
@@ -31,8 +31,11 @@
 $group_id = getIntFromRequest("group_id");
 scm_header(array('title'=>_('SCM Repository'),'group'=>$group_id));
 
+$repo_name = getStringFromRequest("repo_name", "none");
+
 $hook_params = array () ;
 $hook_params['group_id'] = $group_id ;
+$hook_params['repo_name'] = $repo_name ;
 plugin_hook ("scm_browser_page", $hook_params) ;
 
 scm_footer(); 




More information about the Fusionforge-commits mailing list