head 1.124; access; symbols pkgsrc-2023Q4:1.121.0.2 pkgsrc-2023Q4-base:1.121 pkgsrc-2023Q3:1.119.0.2 pkgsrc-2023Q3-base:1.119 pkgsrc-2023Q2:1.118.0.2 pkgsrc-2023Q2-base:1.118 pkgsrc-2023Q1:1.116.0.2 pkgsrc-2023Q1-base:1.116 pkgsrc-2022Q4:1.113.0.2 pkgsrc-2022Q4-base:1.113 pkgsrc-2022Q3:1.109.0.2 pkgsrc-2022Q3-base:1.109 pkgsrc-2022Q2:1.105.0.2 pkgsrc-2022Q2-base:1.105 pkgsrc-2022Q1:1.102.0.2 pkgsrc-2022Q1-base:1.102 pkgsrc-2021Q4:1.100.0.2 pkgsrc-2021Q4-base:1.100 pkgsrc-2021Q3:1.97.0.2 pkgsrc-2021Q3-base:1.97 pkgsrc-2021Q2:1.96.0.2 pkgsrc-2021Q2-base:1.96 pkgsrc-2021Q1:1.94.0.2 pkgsrc-2021Q1-base:1.94 pkgsrc-2020Q4:1.91.0.2 pkgsrc-2020Q4-base:1.91 pkgsrc-2020Q3:1.90.0.2 pkgsrc-2020Q3-base:1.90 pkgsrc-2020Q2:1.89.0.2 pkgsrc-2020Q2-base:1.89 pkgsrc-2020Q1:1.85.0.2 pkgsrc-2020Q1-base:1.85 pkgsrc-2019Q4:1.82.0.4 pkgsrc-2019Q4-base:1.82 pkgsrc-2019Q3:1.80.0.2 pkgsrc-2019Q3-base:1.80 pkgsrc-2019Q2:1.79.0.2 pkgsrc-2019Q2-base:1.79 pkgsrc-2019Q1:1.78.0.2 pkgsrc-2019Q1-base:1.78 pkgsrc-2018Q4:1.77.0.2 pkgsrc-2018Q4-base:1.77 pkgsrc-2018Q3:1.73.0.2 pkgsrc-2018Q3-base:1.73 pkgsrc-2018Q2:1.72.0.2 pkgsrc-2018Q2-base:1.72 pkgsrc-2018Q1:1.69.0.2 pkgsrc-2018Q1-base:1.69 pkgsrc-2017Q4:1.65.0.2 pkgsrc-2017Q4-base:1.65 pkgsrc-2017Q3:1.61.0.4 pkgsrc-2017Q3-base:1.61 pkgsrc-2017Q2:1.57.0.2 pkgsrc-2017Q2-base:1.57 pkgsrc-2017Q1:1.53.0.2 pkgsrc-2017Q1-base:1.53 pkgsrc-2016Q4:1.51.0.2 pkgsrc-2016Q4-base:1.51 pkgsrc-2016Q3:1.48.0.2 pkgsrc-2016Q3-base:1.48 pkgsrc-2016Q2:1.45.0.2 pkgsrc-2016Q2-base:1.45 pkgsrc-2016Q1:1.39.0.2 pkgsrc-2016Q1-base:1.39 pkgsrc-2015Q4:1.35.0.2 pkgsrc-2015Q4-base:1.35 pkgsrc-2015Q3:1.30.0.2 pkgsrc-2015Q3-base:1.30 pkgsrc-2015Q2:1.25.0.2 pkgsrc-2015Q2-base:1.25 pkgsrc-2015Q1:1.20.0.2 pkgsrc-2015Q1-base:1.20 pkgsrc-2014Q4:1.17.0.2 pkgsrc-2014Q4-base:1.17 pkgsrc-2014Q3:1.13.0.2 pkgsrc-2014Q3-base:1.13 pkgsrc-2014Q2:1.12.0.2 pkgsrc-2014Q2-base:1.12 pkgsrc-2014Q1:1.10.0.2 pkgsrc-2014Q1-base:1.10 pkgsrc-2013Q4:1.5.0.2 pkgsrc-2013Q4-base:1.5 pkgsrc-2013Q3:1.1.0.2 pkgsrc-2013Q3-base:1.1; locks; strict; comment @# @; 1.124 date 2024.02.25.22.24.13; author adam; state Exp; branches; next 1.123; commitid gRFRJg8omSVsHRZE; 1.123 date 2024.02.20.19.43.20; author adam; state Exp; branches; next 1.122; commitid vozc1dO3VxHfYcZE; 1.122 date 2024.02.10.07.25.57; author adam; state Exp; branches; next 1.121; commitid EQ8TFDUD0IhfdRXE; 1.121 date 2023.11.21.20.51.21; author adam; state Exp; branches; next 1.120; commitid zcYEA7ODR0eXgwNE; 1.120 date 2023.11.03.10.49.39; author adam; state Exp; branches; next 1.119; commitid ZprhJ84wSOThw9LE; 1.119 date 2023.08.24.09.33.30; author adam; state Exp; branches; next 1.118; commitid xbu7YAuaGPDIn1CE; 1.118 date 2023.06.05.19.23.23; author adam; state Exp; branches; next 1.117; commitid 5PYnYUw6xO4xdNrE; 1.117 date 2023.04.26.08.44.38; author adam; state Exp; branches; next 1.116; commitid AtiF7M3JwLiaYAmE; 1.116 date 2023.03.14.08.03.35; author adam; state Exp; branches 1.116.2.1; next 1.115; commitid WlKrjHqqpCBJ74hE; 1.115 date 2023.02.14.18.43.18; author adam; state Exp; branches; next 1.114; commitid zbgeYPhaVgeNywdE; 1.114 date 2023.01.18.15.44.25; author otis; state Exp; branches; next 1.113; commitid Amk2GbqkPGtyr2aE; 1.113 date 2022.12.19.10.04.34; author adam; state Exp; branches 1.113.2.1; next 1.112; commitid G6TQxFuSULpGw96E; 1.112 date 2022.12.12.22.03.23; author adam; state Exp; branches; next 1.111; commitid WSmGjn3JV2X8Jj5E; 1.111 date 2022.10.19.07.54.52; author adam; state Exp; branches; next 1.110; commitid wL0ee6K81PuKLiYD; 1.110 date 2022.10.07.10.10.05; author adam; state Exp; branches; next 1.109; commitid 9VZHZ9O5iMoWTLWD; 1.109 date 2022.09.01.07.47.28; author adam; state Exp; branches 1.109.2.1; next 1.108; commitid Qz0zMONIl76Pg8SD; 1.108 date 2022.08.12.08.06.22; author adam; state Exp; branches; next 1.107; commitid HkvNS6bOoSUc1zPD; 1.107 date 2022.07.14.10.55.36; author adam; state Exp; branches; next 1.106; commitid 89Wkl677gc4USQLD; 1.106 date 2022.07.06.11.53.59; author adam; state Exp; branches; next 1.105; commitid GafdMejluGE2tPKD; 1.105 date 2022.05.09.12.00.15; author adam; state Exp; branches 1.105.2.1; next 1.104; commitid GTXDRA9duzhGmnDD; 1.104 date 2022.05.03.01.26.55; author gutteridge; state Exp; branches; next 1.103; commitid PwfVvxJlbcAd3yCD; 1.103 date 2022.04.14.23.39.21; author gutteridge; state Exp; branches; next 1.102; commitid 6lwAeBvpBRJQ0eAD; 1.102 date 2022.01.31.13.03.42; author adam; state Exp; branches 1.102.2.1; next 1.101; commitid I7BHJNXfoCUPRMqD; 1.101 date 2022.01.28.09.07.58; author adam; state Exp; branches; next 1.100; commitid 8jKiCmt9IJYLEnqD; 1.100 date 2021.11.28.16.25.24; author adam; state Exp; branches; next 1.99; commitid cFQ8z7oB79wB2AiD; 1.99 date 2021.11.17.09.01.39; author adam; state Exp; branches; next 1.98; commitid B42tL1obPdfeW7hD; 1.98 date 2021.10.13.06.56.09; author adam; state Exp; branches; next 1.97; commitid SBZyN1S26lsYmCcD; 1.97 date 2021.08.23.10.41.25; author adam; state Exp; branches; next 1.96; commitid byHdNolLUSURf56D; 1.96 date 2021.06.13.18.36.31; author adam; state Exp; branches; next 1.95; commitid zcGQ3mzWhibma0XC; 1.95 date 2021.03.31.08.04.21; author adam; state Exp; branches; next 1.94; commitid 3ymYC2UQvZeP2rNC; 1.94 date 2021.03.09.21.15.19; author leot; state Exp; branches; next 1.93; commitid MZ2tUpGZBXeq7GKC; 1.93 date 2021.02.09.06.45.06; author adam; state Exp; branches; next 1.92; commitid EDfJB2nxPblqd0HC; 1.92 date 2021.01.11.10.20.16; author adam; state Exp; branches; next 1.91; commitid kpNs3pUjKLTTkiDC; 1.91 date 2020.10.31.21.10.01; author adam; state Exp; branches; next 1.90; commitid rIBpUGeevKpef6uC; 1.90 date 2020.07.29.07.47.51; author adam; state Exp; branches; next 1.89; commitid 6kJZfp3z2rmzPWhC; 1.89 date 2020.06.03.14.06.47; author adam; state Exp; branches; next 1.88; commitid MeUBPUiC9vjZIMaC; 1.88 date 2020.04.20.20.03.32; author leot; state Exp; branches; next 1.87; commitid cf9IDfYUE7XL6a5C; 1.87 date 2020.04.14.18.27.31; author leot; state Exp; branches; next 1.86; commitid vjiS6vdNk32gMn4C; 1.86 date 2020.04.02.07.46.42; author adam; state Exp; branches; next 1.85; commitid vhRJbbIs201eCM2C; 1.85 date 2020.03.19.17.08.06; author adam; state Exp; branches 1.85.2.1; next 1.84; commitid UzmgaMNCb35Ra21C; 1.84 date 2020.02.24.16.08.10; author adam; state Exp; branches; next 1.83; commitid CyzCYvEWjZH4CWXB; 1.83 date 2020.01.20.20.07.40; author adam; state Exp; branches; next 1.82; commitid ekKm8A8WH2fM3tTB; 1.82 date 2019.12.10.18.32.38; author leot; state Exp; branches; next 1.81; commitid gFj3yJ8hlwb1RbOB; 1.81 date 2019.11.08.12.24.31; author adam; state Exp; branches; next 1.80; commitid Ly0t2n562yZzQ2KB; 1.80 date 2019.08.20.13.00.02; author adam; state Exp; branches 1.80.2.1; next 1.79; commitid APMFuezBieB3CLzB; 1.79 date 2019.06.09.16.15.32; author ryoon; state Exp; branches; next 1.78; commitid GmDw1D7KLhdQ0xqB; 1.78 date 2019.02.26.11.36.59; author adam; state Exp; branches; next 1.77; commitid XcqFWqwO9QHkMgdB; 1.77 date 2018.12.16.12.05.26; author adam; state Exp; branches; next 1.76; commitid 5RqpnllmkC6Jf14B; 1.76 date 2018.12.09.20.29.13; author adam; state Exp; branches; next 1.75; commitid t0k15jsNNDb1ga3B; 1.75 date 2018.11.23.14.57.21; author leot; state Exp; branches; next 1.74; commitid nQvpO2clDzpuW41B; 1.74 date 2018.10.05.17.48.20; author maya; state Exp; branches; next 1.73; commitid DqsE5oKVrPmQsNUA; 1.73 date 2018.09.13.10.56.42; author adam; state Exp; branches 1.73.2.1; next 1.72; commitid biu96XabqTReTVRA; 1.72 date 2018.06.22.08.57.17; author adam; state Exp; branches; next 1.71; commitid SE6ry3yDfxzUTfHA; 1.71 date 2018.05.30.06.40.43; author adam; state Exp; branches; next 1.70; commitid xJ5x2bM5YXaRShEA; 1.70 date 2018.04.11.19.39.34; author adam; state Exp; branches; next 1.69; commitid ew2PTY7ygeBdL3yA; 1.69 date 2018.03.24.08.09.40; author adam; state Exp; branches 1.69.2.1; next 1.68; commitid 9vvlJkfY5qdWwGvA; 1.68 date 2018.02.20.09.26.56; author adam; state Exp; branches; next 1.67; commitid 113k92iV32RcZzrA; 1.67 date 2018.01.23.10.28.55; author adam; state Exp; branches; next 1.66; commitid hl8CXV6tgF3geZnA; 1.66 date 2018.01.22.14.17.24; author adam; state Exp; branches; next 1.65; commitid fc8BHGU3xRVywSnA; 1.65 date 2017.11.30.07.50.01; author adam; state Exp; branches; next 1.64; commitid QrFAn7cuyR3l52hA; 1.64 date 2017.11.02.06.17.41; author adam; state Exp; branches; next 1.63; commitid 51Pw2mec04JrtqdA; 1.63 date 2017.10.24.06.43.24; author adam; state Exp; branches; next 1.62; commitid sHcX3Ij1RkZgUgcA; 1.62 date 2017.09.27.06.37.47; author adam; state Exp; branches; next 1.61; commitid wtUbuFwfv18bKN8A; 1.61 date 2017.08.12.22.05.15; author adam; state Exp; branches 1.61.4.1; next 1.60; commitid vYzffzg0sd40mY2A; 1.60 date 2017.08.07.17.56.14; author adam; state Exp; branches; next 1.59; commitid aOAqqwlmnlsr8j2A; 1.59 date 2017.08.03.07.45.18; author adam; state Exp; branches; next 1.58; commitid eNQoi1otoVbTSJ1A; 1.58 date 2017.07.13.06.55.19; author adam; state Exp; branches; next 1.57; commitid AE3RgPNF0mrDh2Zz; 1.57 date 2017.06.25.03.15.11; author mef; state Exp; branches 1.57.2.1; next 1.56; commitid 7oJJYOj863XkDHWz; 1.56 date 2017.06.05.10.11.39; author adam; state Exp; branches; next 1.55; commitid GF0HG2oSndLIAaUz; 1.55 date 2017.05.10.18.09.25; author adam; state Exp; branches; next 1.54; commitid GF9rZYrYblmg4SQz; 1.54 date 2017.03.30.16.23.34; author adam; state Exp; branches; next 1.53; commitid b5kWcvsLpKCMNALz; 1.53 date 2017.02.25.08.32.57; author adam; state Exp; branches; next 1.52; commitid mPFSTbukbViegjHz; 1.52 date 2017.02.04.11.14.47; author adam; state Exp; branches; next 1.51; commitid 28wLXi15QULrPCEz; 1.51 date 2016.12.05.14.07.31; author adam; state Exp; branches; next 1.50; commitid AiaiPnkscMGgKNwz; 1.50 date 2016.10.30.11.43.03; author adam; state Exp; branches; next 1.49; commitid Vip46gQL19gA6asz; 1.49 date 2016.10.06.10.45.04; author adam; state Exp; branches; next 1.48; commitid RuVwnyWF0D8uy4pz; 1.48 date 2016.09.07.08.56.32; author adam; state Exp; branches; next 1.47; commitid 8XMXZxqgTcUYSklz; 1.47 date 2016.08.19.16.11.14; author wiz; state Exp; branches; next 1.46; commitid U7746Unwrd6UTViz; 1.46 date 2016.07.21.13.12.25; author wiz; state Exp; branches; next 1.45; commitid lmYABOnhPpOjQbfz; 1.45 date 2016.06.14.16.50.03; author adam; state Exp; branches; next 1.44; commitid FgPYP8mq1GKLesaz; 1.44 date 2016.06.12.13.27.03; author wiz; state Exp; branches; next 1.43; commitid NBVv0YRAGTy7bbaz; 1.43 date 2016.05.26.15.39.28; author khorben; state Exp; branches; next 1.42; commitid H5avQw1XLTPds08z; 1.42 date 2016.05.22.18.00.00; author wiz; state Exp; branches; next 1.41; commitid cUtUEUtOSHCzmv7z; 1.41 date 2016.05.09.09.08.33; author adam; state Exp; branches; next 1.40; commitid MissQSm2OYJcQM5z; 1.40 date 2016.04.07.13.26.36; author adam; state Exp; branches; next 1.39; commitid 4KfHtDerioEEiH1z; 1.39 date 2016.03.12.11.33.32; author adam; state Exp; branches; next 1.38; commitid n0Cf7gsyQvEAvlYy; 1.38 date 2016.02.29.10.50.55; author adam; state Exp; branches; next 1.37; commitid QhRvspEho7NRENWy; 1.37 date 2016.02.07.10.27.23; author adam; state Exp; branches; next 1.36; commitid Z8CcASAoqGLJeYTy; 1.36 date 2016.01.08.17.37.20; author adam; state Exp; branches; next 1.35; commitid FoxZUYgXeJyTz9Qy; 1.35 date 2015.12.10.13.35.46; author adam; state Exp; branches 1.35.2.1; next 1.34; commitid wqSh4Dp4138WapMy; 1.34 date 2015.11.06.15.45.05; author adam; state Exp; branches; next 1.33; commitid AHf91vXUrUWWY2Iy; 1.33 date 2015.10.17.07.44.56; author adam; state Exp; branches; next 1.32; commitid fi6x4x0j7qH7YqFy; 1.32 date 2015.10.07.14.08.41; author ryoon; state Exp; branches; next 1.31; commitid ocrD2kifPjtNpbEy; 1.31 date 2015.09.28.14.21.30; author adam; state Exp; branches; next 1.30; commitid BQDp0MU7tub7M1Dy; 1.30 date 2015.09.13.09.24.32; author wiz; state Exp; branches; next 1.29; commitid oEb1SM6znHKKB4By; 1.29 date 2015.08.30.16.08.06; author wiz; state Exp; branches; next 1.28; commitid VOrtlIaJRkAuijzy; 1.28 date 2015.07.31.12.57.23; author adam; state Exp; branches; next 1.27; commitid 5f1VZiEVgp1Mcrvy; 1.27 date 2015.07.17.11.24.27; author adam; state Exp; branches; next 1.26; commitid 6CYtjk8yqSqI8Dty; 1.26 date 2015.07.04.05.56.29; author ryoon; state Exp; branches; next 1.25; commitid hCNRhCKeM8kgKVry; 1.25 date 2015.06.06.09.59.07; author adam; state Exp; branches; next 1.24; commitid fyyxMQ2Hm0ZhZloy; 1.24 date 2015.05.31.22.28.36; author ryoon; state Exp; branches; next 1.23; commitid TdCNNc5olkknkEny; 1.23 date 2015.05.18.12.51.37; author adam; state Exp; branches; next 1.22; commitid 4IGnZDKu6TkhyVly; 1.22 date 2015.04.25.09.02.45; author adam; state Exp; branches; next 1.21; commitid Sq2APhHB5yQB1Xiy; 1.21 date 2015.04.08.10.37.07; author adam; state Exp; branches; next 1.20; commitid fChUekTepecR5Mgy; 1.20 date 2015.03.08.08.12.56; author adam; state Exp; branches; next 1.19; commitid pnp27A5eJmJ8iMcy; 1.19 date 2015.02.08.09.02.11; author adam; state Exp; branches; next 1.18; commitid 9V73tgq83vMQsb9y; 1.18 date 2015.01.19.15.42.42; author adam; state Exp; branches; next 1.17; commitid 7aQ1ScL32a8VjE6y; 1.17 date 2014.12.19.00.49.53; author schmonz; state Exp; branches; next 1.16; commitid pEPuzydcudvInA2y; 1.16 date 2014.11.30.18.43.41; author adam; state Exp; branches; next 1.15; commitid 5q7GPQwCaoEyVe0y; 1.15 date 2014.11.01.11.34.00; author adam; state Exp; branches; next 1.14; commitid hSJ1g1OszTUbutWx; 1.14 date 2014.10.01.12.08.24; author adam; state Exp; branches; next 1.13; commitid jvDYUOTejY1RFuSx; 1.13 date 2014.08.25.07.49.08; author adam; state Exp; branches; next 1.12; commitid J9VwaTRObrzoqINx; 1.12 date 2014.06.02.16.32.36; author adam; state Exp; branches; next 1.11; commitid WwPDuZBmi1PG1YCx; 1.11 date 2014.05.10.11.43.30; author adam; state Exp; branches; next 1.10; commitid JMVntFq0RJCgaZzx; 1.10 date 2014.02.23.10.00.27; author adam; state Exp; branches; next 1.9; commitid 1ed3W9KEM2gl2dqx; 1.9 date 2014.02.06.17.34.02; author adam; state Exp; branches; next 1.8; commitid 3F8quvvKq2YS54ox; 1.8 date 2014.01.17.09.53.50; author adam; state Exp; branches; next 1.7; commitid ZNSTUaXlEgqWbslx; 1.7 date 2014.01.17.09.50.38; author adam; state Exp; branches; next 1.6; commitid VVQOvVQKeYUHaslx; 1.6 date 2014.01.01.11.14.38; author adam; state Exp; branches; next 1.5; commitid NXJTzkvFMSZq9pjx; 1.5 date 2013.12.04.12.51.06; author adam; state Exp; branches; next 1.4; commitid SNMnLkSOvZplAOfx; 1.4 date 2013.11.12.11.22.10; author adam; state Exp; branches; next 1.3; commitid pSLjX39IfUGCNYcx; 1.3 date 2013.11.02.07.54.04; author adam; state Exp; branches; next 1.2; commitid M9BkHGUSAc66YFbx; 1.2 date 2013.10.18.19.48.48; author adam; state Exp; branches; next 1.1; commitid 6OZLtu9lOdVipO9x; 1.1 date 2013.09.09.13.56.27; author wiz; state Exp; branches; next ; commitid haAynF9nFoAfIL4x; 1.116.2.1 date 2023.05.15.17.23.55; author spz; state Exp; branches; next ; commitid LNomQbDxQPvwe5pE; 1.113.2.1 date 2023.01.30.13.50.14; author bsiegert; state Exp; branches; next ; commitid FkbnGYGnEGAtqzbE; 1.109.2.1 date 2022.11.05.11.28.28; author bsiegert; state Exp; branches; next ; commitid BJhmQFimAk6epv0E; 1.105.2.1 date 2022.07.26.19.29.02; author spz; state Exp; branches; next ; commitid AbzLm5vdM08mlrND; 1.102.2.1 date 2022.04.16.10.16.11; author spz; state Exp; branches; next ; commitid 5hyrfqYzHP9ZwpAD; 1.85.2.1 date 2020.04.17.12.20.47; author bsiegert; state Exp; branches; next 1.85.2.2; commitid Gh9FOfYcWeRsEJ4C; 1.85.2.2 date 2020.05.06.09.53.00; author bsiegert; state Exp; branches; next ; commitid 4WnjV9vgzIIUda7C; 1.80.2.1 date 2019.12.12.11.50.51; author bsiegert; state Exp; branches; next ; commitid WjJ5C3KeBicezpOB; 1.73.2.1 date 2018.10.06.12.03.41; author spz; state Exp; branches; next ; commitid JfgRfsGQWiJIwTUA; 1.69.2.1 date 2018.06.08.10.39.05; author bsiegert; state Exp; branches; next ; commitid gUQmTPbpSKTpUsFA; 1.61.4.1 date 2017.11.25.08.49.05; author bsiegert; state Exp; branches; next ; commitid rawsdxPLmETIzogA; 1.57.2.1 date 2017.09.13.17.58.54; author spz; state Exp; branches; next ; commitid EWPaKKUNJHiPX37A; 1.35.2.1 date 2016.03.22.18.55.23; author bsiegert; state Exp; branches; next ; commitid f7xPTFuXztRmDFZy; desc @@ 1.124 log @git: updated to 2.44.0 Git v2.44 Release Notes ======================= Backward Compatibility Notes * "git checkout -B " used to allow switching to a branch that is in use on another worktree, but this was by mistake. The users need to use "--ignore-other-worktrees" option. UI, Workflows & Features * "git add" and "git stash" learned to support the ":(attr:...)" magic pathspec. * "git rebase --autosquash" is now enabled for non-interactive rebase, but it is still incompatible with the apply backend. * Introduce "git replay", a tool meant on the server side without working tree to recreate a history. * "git merge-file" learned to take the "--diff-algorithm" option to use algorithm different from the default "myers" diff. * Command line completion (in contrib/) learned to complete path arguments to the "add/set" subcommands of "git sparse-checkout" better. * "git checkout -B []" allowed a branch that is in use in another worktree to be updated and checked out, which might be a bit unexpected. The rule has been tightened, which is a breaking change. "--ignore-other-worktrees" option is required to unbreak you, if you are used to the current behaviour that "-B" overrides the safety. * The builtin_objectmode attribute is populated for each path without adding anything in .gitattributes files, which would be useful in magic pathspec, e.g., ":(attr:builtin_objectmode=100755)" to limit to executables. * "git fetch" learned to pay attention to "fetch.all" configuration variable, which pretends as if "--all" was passed from the command line when no remote parameter was given. * In addition to (rather cryptic) Security Identifiers, show username and domain in the error message when we barf on mismatch between the Git directory and the current user on Windows. * The error message given when "git branch -d branch" fails due to commits unique to the branch has been split into an error and a new conditional advice message. * When given an existing but unreadable file as a configuration file, gitweb behaved as if the file did not exist at all, but now it errors out. This is a change that may break backward compatibility. * When $HOME/.gitconfig is missing but XDG config file is available, we should write into the latter, not former. "git gc" and "git maintenance" wrote into a wrong "global config" file, which have been corrected. * Define "special ref" as a very narrow set that consists of FETCH_HEAD and MERGE_HEAD, and clarify everything else that used to be classified as such are actually just pseudorefs. * All conditional "advice" messages show how to turn them off, which becomes repetitive. Setting advice.* configuration explicitly on now omits the instruction part. * The "disable repository discovery of a bare repository" check, triggered by setting safe.bareRepository configuration variable to 'explicit', has been loosened to exclude the ".git/" directory inside a non-bare repository from the check. So you can do "cd .git && git cmd" to run a Git command that works on a bare repository without explicitly specifying $GIT_DIR now. * The completion script (in contrib/) learned more options that can be used with "git log". * The labels on conflict markers for the common ancestor, our version, and the other version are available to custom 3-way merge driver via %S, %X, and %Y placeholders. * The write codepath for the reftable data learned to honor core.fsync configuration. * The "--fsck-objects" option of "git index-pack" now can take the optional parameter to tweak severity of different fsck errors. * The wincred credential backend has been taught to support oauth refresh token the same way as credential-cache and credential-libsecret backends. * Command line completion support (in contrib/) has been updated for "git bisect". * "git branch" and friends learned to use the formatted text as sorting key, not the underlying timestamp value, when the --sort option is used with author or committer timestamp with a format specifier (e.g., "--sort=creatordate:format:%H:%M:%S"). * The command line completion script (in contrib/) learned to complete configuration variable names better. Performance, Internal Implementation, Development Support etc. * Process to add some form of low-level unit tests has started. * Add support for GitLab CI. * "git for-each-ref --no-sort" still sorted the refs alphabetically which paid non-trivial cost. It has been redefined to show output in an unspecified order, to allow certain optimizations to take advantage of. * Simplify API implementation to delete references by eliminating duplication. * Subject approxidate() and show_date() machinery to OSS-Fuzz. * A new helper to let us pretend that we called lstat() when we know our cache_entry is up-to-date via fsmonitor. * The optimization based on fsmonitor in the "diff --cached" codepath is resurrected with the "fake-lstat" introduced earlier. * Test balloon to use C99 "bool" type from has been added. * "git clone" has been prepared to allow cloning a repository with non-default hash function into a repository that uses the reftable backend. * Streaming spans of packfile data used to be done only from a single, primary, pack in a repository with multiple packfiles. It has been extended to allow reuse from other packfiles, too. * Comment updates to help developers not to attempt to modify messages from plumbing commands that must stay constant. It might make sense to reassess the plumbing needs every few years, but that should be done as a separate effort. * Move test-ctype helper to the unit-test framework. * Instead of manually creating refs/ hierarchy on disk upon a creation of a secondary worktree, which is only usable via the files backend, use the refs API to populate it. * CI for GitLab learned to drive macOS jobs. * A few tests to "git commit -o " and "git commit -i " has been added. * Tests on ref API are moved around to prepare for reftable. * The Makefile often had to say "-L$(path) -R$(path)" that repeats the path to the same library directory for link time and runtime. A Makefile template is used to reduce such repetition. * The priority queue test has been migrated to the unit testing framework. * Setting `feature.experimental` opts the user into multi-pack reuse experiment * Squelch node.js 16 deprecation warnings from GitHub Actions CI by updating actions/github-script and actions/checkout that use node.js 20. * The mechanism to report the filename in the source code, used by the unit-test machinery, assumed that the compiler expanded __FILE__ to the path to the source given to the $(CC), but some compilers give full path, breaking the output. This has been corrected. Fixes since v2.43 ----------------- * The way CI testing used "prove" could lead to running the test suite twice needlessly, which has been corrected. * Update ref-related tests. * "git format-patch --encode-email-headers" ignored the option when preparing the cover letter, which has been corrected. * Newer versions of Getopt::Long started giving warnings against our (ab)use of it in "git send-email". Bump the minimum version requirement for Perl to 5.8.1 (from September 2002) to allow simplifying our implementation. * Earlier we stopped relying on commit-graph that (still) records information about commits that are lost from the object store, which has negative performance implications. The default has been flipped to disable this pessimization. * Stale URLs have been updated to their current counterparts (or archive.org) and HTTP links are replaced with working HTTPS links. * trace2 streams used to record the URLs that potentially embed authentication material, which has been corrected. * The sample pre-commit hook that tries to catch introduction of new paths that use potentially non-portable characters did not notice an existing path getting renamed to such a problematic path, when rename detection was enabled. * The command line parser for the "log" family of commands was too loose when parsing certain numbers, e.g., silently ignoring the extra 'q' in "git log -n 1q" without complaining, which has been tightened up. * "git $cmd --end-of-options --rev -- --path" for some $cmd failed to interpret "--rev" as a rev, and "--path" as a path. This was fixed for many programs like "reset" and "checkout". * "git bisect reset" has been taught to clean up state files and refs even when BISECT_START file is gone. * Some codepaths did not correctly parse configuration variables specified with valueless "true", which has been corrected. * Code clean-up for sanity checking of command line options for "git show-ref". * The code to parse the From e-mail header has been updated to avoid recursion. * "git fetch --atomic" issued an unnecessary empty error message, which has been corrected. * Command line completion script (in contrib/) learned to work better with the reftable backend. * "git status" is taught to show both the branch being bisected and being rebased when both are in effect at the same time. * "git archive --list extra garbage" silently ignored excess command line parameters, which has been corrected. * "git sparse-checkout set" added default patterns even when the patterns are being fed from the standard input, which has been corrected. * "git sparse-checkout (add|set) --[no-]cone --end-of-options" did not handle "--end-of-options" correctly after a recent update. * Unlike other environment variables that took the usual true/false/yes/no as well as 0/1, GIT_FLUSH only understood 0/1, which has been corrected. * Clearing in-core repository (happens during e.g., "git fetch --recurse-submodules" with commit graph enabled) made in-core commit object in an inconsistent state by discarding the necessary data from commit-graph too early, which has been corrected. * Update to a new feature recently added, "git show-ref --exists". * oss-fuzz tests are built and run in CI. (merge c4a9cf1df3 js/oss-fuzz-build-in-ci later to maint). * Rename detection logic ignored the final line of a file if it is an incomplete line. * GitHub CI update. (merge 0188b2c8e0 pb/ci-github-skip-logs-for-broken-tests later to maint). * "git diff --no-rename A B" did not disable rename detection but did not trigger an error from the command line parser. * "git archive --remote=" learned to talk over the smart http (aka stateless) transport. (merge 176cd68634 jx/remote-archive-over-smart-http later to maint). * Fetching via protocol v0 over Smart HTTP transport sometimes failed to correctly auto-follow tags. (merge fba732c462 jk/fetch-auto-tag-following-fix later to maint). * The documentation for the --exclude-per-directory option marked it as deprecated, which confused readers into thinking there may be a plan to remove it in the future, which was not our intention. (merge 0009542cab jc/ls-files-doc-update later to maint). * "git diff --no-index file1 file2" segfaulted while invoking the external diff driver, which has been corrected. * Rewrite //-comments to /* comments */ in files whose comments prevalently use the latter. * Cirrus CI jobs started breaking because we specified version of FreeBSD that is no longer available, which has been corrected. (merge 81fffb66d3 cb/use-freebsd-13-2-at-cirrus-ci later to maint). * A caller called index_file_exists() that takes a string expressed as with a wrong length, which has been corrected. (merge 156e28b36d jh/sparse-index-expand-to-path-fix later to maint). * A failed "git tag -s" did not necessarily result in an error depending on the crypto backend, which has been corrected. * "git stash" sometimes was silent even when it failed due to unwritable index file, which has been corrected. * "git show-ref --verify" did not show things like "CHERRY_PICK_HEAD", which has been corrected. * Recent conversion to allow more than 0/1 in GIT_FLUSH broke the mechanism by flipping what yes/no means by mistake, which has been corrected. * The sequencer machinery does not use the ref API and instead records names of certain objects it needs for its correct operation in temporary files, which makes these objects susceptible to loss by garbage collection. These temporary files have been added as starting points for reachability analysis to fix this. (merge bc7f5db896 pw/gc-during-rebase later to maint). * "git cherry-pick" invoked during "git rebase -i" session lost the authorship information, which has been corrected. (merge e4301f73ff vn/rebase-with-cherry-pick-authorship later to maint). * The code paths that call repo_read_object_file() have been tightened to react to errors. (merge 568459bf5e js/check-null-from-read-object-file later to maint). * Other code cleanup, docfix, build fix, etc. (merge 5aea3955bc rj/clarify-branch-doc-m later to maint). (merge 9cce3be2df bk/bisect-doc-fix later to maint). (merge 8430b438f6 vd/fsck-submodule-url-test later to maint). (merge 3cb4384683 jc/t0091-with-unknown-git later to maint). (merge 020456cb74 rs/receive-pack-remove-find-header later to maint). (merge bc47139f4f la/trailer-cleanups later to maint). @ text @# $NetBSD: Makefile.version,v 1.123 2024/02/20 19:43:20 adam Exp $ # # used by devel/git/Makefile.common # used by devel/git-cvs/Makefile # used by devel/git-svn/Makefile GIT_VERSION= 2.44.0 @ 1.123 log @git: updated to 2.43.2 Git 2.43.2 Release Notes ======================== Relative to Git 2.43.1, this release has two important fixes to allow "git imap-send" to be built with NO_CURL defined, and to restore the forced flushing behaviour when GIT_FLUSH=1 is set. It also contains other, unexciting, fixes that have already been merged to the 'master' branch of the development towards the next major release. Fixes since Git 2.43.1 ---------------------- * Update to a new feature recently added, "git show-ref --exists". * Rename detection logic ignored the final line of a file if it is an incomplete line. * "git diff --no-rename A B" did not disable rename detection but did not trigger an error from the command line parser. * "git diff --no-index file1 file2" segfaulted while invoking the external diff driver, which has been corrected. * Rewrite //-comments to /* comments */ in files whose comments prevalently use the latter. * A failed "git tag -s" did not necessarily result in an error depending on the crypto backend, which has been corrected. * "git stash" sometimes was silent even when it failed due to unwritable index file, which has been corrected. * Recent conversion to allow more than 0/1 in GIT_FLUSH broke the mechanism by flipping what yes/no means by mistake, which has been corrected. Also contains documentation updates, code clean-ups and minor fixups. @ text @d1 1 a1 1 # $NetBSD: Makefile.version,v 1.122 2024/02/10 07:25:57 adam Exp $ d7 1 a7 1 GIT_VERSION= 2.43.2 @ 1.122 log @git: updated to 2.43.1 Git 2.43.1 Release Notes ======================== There is nothing exciting to see here. Relative to Git 2.43, this release contains the fixes that have already been merged to the 'master' branch of the development towards the next major release. Fixes since Git 2.43.0 ---------------------- * The way CI testing used "prove" could lead to running the test suite twice needlessly, which has been corrected. * Newer versions of Getopt::Long started giving warnings against our (ab)use of it in "git send-email". Bump the minimum version requirement for Perl to 5.8.1 (from September 2002) to allow simplifying our implementation. * Earlier we stopped relying on commit-graph that (still) records information about commits that are lost from the object store, which has negative performance implications. The default has been flipped to disable this pessimization. * Stale URLs have been updated to their current counterparts (or archive.org) and HTTP links are replaced with working HTTPS links. * trace2 streams used to record the URLs that potentially embed authentication material, which has been corrected. * The sample pre-commit hook that tries to catch introduction of new paths that use potentially non-portable characters did not notice an existing path getting renamed to such a problematic path, when rename detection was enabled. * The command line parser for the "log" family of commands was too loose when parsing certain numbers, e.g., silently ignoring the extra 'q' in "git log -n 1q" without complaining, which has been tightened up. * "git $cmd --end-of-options --rev -- --path" for some $cmd failed to interpret "--rev" as a rev, and "--path" as a path. This was fixed for many programs like "reset" and "checkout". * "git bisect reset" has been taught to clean up state files and refs even when BISECT_START file is gone. * Some codepaths did not correctly parse configuration variables specified with valueless "true", which has been corrected. * Code clean-up for sanity checking of command line options for "git show-ref". * The code to parse the From e-mail header has been updated to avoid recursion. * "git fetch --atomic" issued an unnecessary empty error message, which has been corrected. * Command line completion script (in contrib/) learned to work better with the reftable backend. * "git status" is taught to show both the branch being bisected and being rebased when both are in effect at the same time. cf. * "git archive --list extra garbage" silently ignored excess command line parameters, which has been corrected. * "git sparse-checkout set" added default patterns even when the patterns are being fed from the standard input, which has been corrected. * Unlike other environment variables that took the usual true/false/yes/no as well as 0/1, GIT_FLUSH only understood 0/1, which has been corrected. * Clearing in-core repository (happens during e.g., "git fetch --recurse-submodules" with commit graph enabled) made in-core commit object in an inconsistent state by discarding the necessary data from commit-graph too early, which has been corrected. Also contains various documentation updates, code clean-ups and minor fixups. @ text @d1 1 a1 1 # $NetBSD: Makefile.version,v 1.121 2023/11/21 20:51:21 adam Exp $ d7 1 a7 1 GIT_VERSION= 2.43.1 @ 1.121 log @git: updated to 2.43.0 Git v2.43 Release Notes ======================= Backward Compatibility Notes * The "--rfc" option of "git format-patch" used to be a valid way to override an earlier "--subject-prefix=" on the command line and replace it with "[RFC PATCH]", but from this release, it merely prefixes the string "RFC " in front of the given subject prefix. If you are negatively affected by this change, please use "--subject-prefix=PATCH --rfc" as a replacement. * In Git 2.42, "git rev-list --stdin" learned to take non-revisions (like "--not") from the standard input, but the way such a "--not" was handled was quite confusing, which has been rethought. The updated rule is that "--not" given from the command line only affects revs given from the command line that comes but not revs read from the standard input, and "--not" read from the standard input affects revs given from the standard input and not revs given from the command line. UI, Workflows & Features * A message written in olden time prevented a branch from getting checked out, saying it is already checked out elsewhere. But these days, we treat a branch that is being bisected or rebased just like a branch that is checked out and protect it from getting modified with the same codepath. The message has been rephrased to say that the branch is "in use" to avoid confusion. * Hourly and other schedules of "git maintenance" jobs are randomly distributed now. * "git cmd -h" learned to signal which options can be negated by listing such options like "--[no-]opt". * The way authentication related data other than passwords (e.g., oauth token and password expiration data) are stored in libsecret keyrings has been rethought. * Update the libsecret and wincred credential helpers to correctly match which credential to erase; they erased the wrong entry in some cases. * Git GUI updates. * "git format-patch" learned a new "--description-file" option that lets cover letter description to be fed; this can be used on detached HEAD where there is no branch description available, and also can override the branch description if there is one. * Use of the "--max-pack-size" option to allow multiple packfiles to be created is now supported even when we are sending unreachable objects to cruft packs. * "git format-patch --rfc --subject-prefix=" used to ignore the "--subject-prefix" option and used "[RFC PATCH]"; now we will add "RFC" prefix to whatever subject prefix is specified. * "git log --format" has been taught the %(decorate) placeholder for further customization over what the "--decorate" option offers. * The default log message created by "git revert", when reverting a commit that records a revert, has been tweaked, to encourage people to describe complex "revert of revert of revert" situations better in their own words. * The command-line completion support (in contrib/) learned to complete "git commit --trailer=" for possible trailer keys. * "git update-index" learned the "--show-index-version" option to inspect the index format version used by the on-disk index file. * "git diff" learned the "diff.statNameWidth" configuration variable, to give the default width for the name part in the "--stat" output. * "git range-diff --notes=foo" compared "log --notes=foo --notes" of the two ranges, instead of using just the specified notes tree, which has been corrected to use only the specified notes tree. * The command line completion script (in contrib/) can be told to complete aliases by including ": git ;" in the alias to tell it that the alias should be completed in a similar way to how "git " is completed. The parsing code for the alias has been loosened to allow ';' without an extra space before it. * "git for-each-ref" and friends learned to apply mailmap to authorname and other fields in a more flexible way than using separate placeholder letters like %a[eElL] every time we want to come up with small variants. * "git repack" machinery learned to pay attention to the "--filter=" option. * "git repack" learned the "--max-cruft-size" option to prevent cruft packs from growing without bounds. * "git merge-tree" learned to take strategy backend specific options via the "-X" option, like "git merge" does. * "git log" and friends learned the "--dd" option that is a short-hand for "--diff-merges=first-parent -p". * The attribute subsystem learned to honor the "attr.tree" configuration variable that specifies which tree to read the .gitattributes files from. * "git merge-file" learns a mode to read three variants of the contents to be merged from blob objects. Performance, Internal Implementation, Development Support etc. * "git check-attr" has been taught to work better with sparse-index. * It may be tempting to leave the help text NULL for a command line option that is either hidden or too obvious, but "git subcmd -h" and "git subcmd --help-all" would have segfaulted if done so. Now the help text is truly optional. * Tests that are known to pass with LSan are now marked as such. * Flaky "git p4" tests, as well as "git svn" tests, are now skipped in the (rather expensive) sanitizer CI job. * Tests with LSan from time to time seem to emit harmless messages that make our tests unnecessarily flaky; we work around it by filtering the uninteresting output. * Unused parameters to functions are marked as such, and/or removed, in order to bring us closer to "-Wunused-parameter" clean. * The code to keep track of existing packs in the repository while repacking has been refactored. * The "streaming" interface used for bulk-checkin codepath has been narrowed to take only blob objects for now, with no real loss of functionality. * GitHub CI workflow has learned to trigger Coverity check. * Test coverage for trailers has been improved. * The code to iterate over loose references has been optimized to reduce the number of lstat() system calls. * The codepaths that read "chunk" formatted files have been corrected to pay attention to the chunk size and notice broken files. * Replace macos-12 used at GitHub CI with macos-13. (merge 682a868f67 js/ci-use-macos-13 later to maint). Fixes since v2.42 ----------------- * Overly long label names used in the sequencer machinery are now chopped to fit under filesystem limitation. * Scalar updates. * Tweak GitHub Actions CI so that pushing the same commit to multiple branch tips at the same time will not waste building and testing the same thing twice. * The commit-graph verification code that detects a mixture of zero and non-zero generation numbers has been updated. * "git diff -w --exit-code" with various options did not work correctly, which has been corrected. * The "transfer.unpackLimit" configuration variable ought to be used as a fallback, but overrode the more specific "fetch.unpackLimit" and "receive.unpackLimit" configuration variables by mistake, which has been corrected. * The use of API between two calls to require_clean_work_tree() from the sequencer code has been cleaned up for consistency. * "git diff --no-such-option" and other corner cases around the exit status of the "diff" command have been corrected. * "git for-each-ref --sort='contents:size'" sorted the refs according to size numerically, giving a ref that points at a blob twelve-byte (12) long before showing a blob hundred-byte (100) long, which has been corrected. * We now limit the depth of the tree objects and maximum length of pathnames recorded in tree objects. (merge 4d5693ba05 jk/tree-name-and-depth-limit later to maint). * Various fixes to the behavior of "rebase -i", when the command got interrupted by conflicting changes, have been made. * References from a description of the `--patch` option in various manual pages have been simplified and improved. * "git grep -e A --no-or -e B" is accepted, even though the negation of the "--or" option did not mean anything, which has been tightened. * The completion script (in contrib/) has been taught to treat the "-t" option to "git checkout" and "git switch" just like the "--track" option, to complete remote-tracking branches. * "git diff --no-index -R <(one) <(two)" did not work correctly, which has been corrected. * "git maintenance" timers' implementation has been updated, based on systemd timers, to work with WSL. * "git diff --cached" codepath did not fill the necessary stat information for a file when fsmonitor knows it is clean and ended up behaving as if it were not clean, which has been corrected. * How "alias.foo = : git cmd ; aliased-command-string" should be spelled with necessary whitespace around punctuation marks to work has been more clearly documented (but this will be moot with newer versions of Git where the parsing rules have been improved). * HTTP Header redaction code has been adjusted for a newer version of cURL library that shows its traces differently from earlier versions. * An error message given by "git send-email", when given a malformed address, did not show the offending address, which has been corrected. * UBSan options were not propagated through the test framework to git run via the httpd, unlike ASan options, which has been corrected. * "checkout --merge -- path" and "update-index --unresolve path" did not resurrect conflicted state that was resolved to remove path, but now they do. (merge 5bdedac3c7 jc/unresolve-removal later to maint). * The display width table for unicode characters has been updated for Unicode 15.1 (merge 872976c37e bb/unicode-width-table-15 later to maint). * Update mailmap entry for Derrick. (merge 6e5457d8c7 ds/mailmap-entry-update later to maint). * In the ".gitmodules" files, submodules are keyed by their names, and the path to the submodule whose name is $name is specified by the submodule.$name.path variable. There were a few codepaths that mixed the name and path up when consulting the submodule database, which have been corrected. It took long for these bugs to be found as the name of a submodule initially is the same as its path, and the problem does not surface until it is moved to a different path, which apparently happens very rarely. * "git diff --merge-base X other args..." insisted that X must be a commit and errored out when given an annotated tag that peels to a commit, but we only need it to be a committish. This has been corrected. (merge 4adceb5a29 ar/diff-index-merge-base-fix later to maint). * "git merge-tree" used to segfault when the "--attr-source" option is used, which has been corrected. (merge e95bafc52f jc/merge-ort-attr-index-fix later to maint). * Unlike "git log --pretty=%D", "git log --pretty="%(decorate)" did not auto-initialize the decoration subsystem, which has been corrected. * Feeding "git stash store" with a random commit that was not created by "git stash create" now errors out. (merge d9b6634589 jc/fail-stash-to-store-non-stash later to maint). * The index file has room only for the lower 32-bit of the file size in the cached stat information, which means cached stat information will have 0 in its sd_size member for a file whose size is a multiple of 4GiB. This is mistaken for a racily clean path. Avoid it by storing a bogus sd_size value instead for such files. (merge 5143ac07b1 bc/racy-4gb-files later to maint). * "git p4" tried to store symlinks to LFS when told, but has been fixed not to do so, because it does not make sense. (merge 10c89a02b0 mm/p4-symlink-with-lfs later to maint). * The codepath to handle recipient addresses `git send-email --compose` learns from the user was completely broken, which has been corrected. (merge 3ec6167567 jk/send-email-fix-addresses-from-composed-messages later to maint). * "cd sub && git grep -f patterns" tried to read "patterns" file at the top level of the working tree; it has been corrected to read "sub/patterns" instead. * "git reflog expire --single-worktree" has been broken for the past 20 months or so, which has been corrected. * "git send-email" did not have certain pieces of data computed yet when it tried to validate the outgoing messages and its recipient addresses, which has been sorted out. * "git bugreport" learned to complain when it received a command line argument that it will not use. * The codepath to traverse the commit-graph learned to notice that a commit is missing (e.g., corrupt repository lost an object), even though it knows something about the commit (like its parents) from what is in commit-graph. (merge 7a5d604443 ps/do-not-trust-commit-graph-blindly-for-existence later to maint). * "git rev-list --missing" did not work for missing commit objects, which has been corrected. * "git rev-list --unpacked --objects" failed to exclude packed non-commit objects, which has been corrected. (merge 7b3c8e9f38 tb/rev-list-unpacked-fix later to maint). * "To dereference" and "to peel" were sometimes used in in-code comments and documentation but without description in the glossary. (merge 893dce2ffb vd/glossary-dereference-peel later to maint). * Other code cleanup, docfix, build fix, etc. (merge c2c349a15c xz/commit-title-soft-limit-doc later to maint). (merge 1bd809938a tb/format-pack-doc-update later to maint). (merge 8f81532599 an/clang-format-typofix later to maint). (merge 3ca86adc2d la/strvec-header-fix later to maint). (merge 6789275d37 jc/test-i18ngrep later to maint). (merge 9972cd6004 ps/leakfixes later to maint). (merge 46edab516b tz/send-email-helpfix later to maint). @ text @d1 1 a1 1 # $NetBSD: Makefile.version,v 1.120 2023/11/03 10:49:39 adam Exp $ d7 1 a7 1 GIT_VERSION= 2.43.0 @ 1.120 log @git: updated to 2.42.1 Git 2.42.1 Release Notes ======================== There is nothing exciting to see here. Relative to Git 2.42, this release contains the fixes that have already been merged to the 'master' branch of the development towards Git 2.43 that has been tagged as Git 2.43.0-rc0. Fixes since Git 2.42.0 ---------------------- * Tests that are known to pass with LSan are now marked as such. * Flaky "git p4" tests, as well as "git svn" tests, are now skipped in the (rather expensive) sanitizer CI job. * Tests with LSan from time to time seem to emit harmless message that makes our tests unnecessarily flaky; we work it around by filtering the uninteresting output. * GitHub CI workflow has learned to trigger Coverity check. * Overly long label names used in the sequencer machinery are now chopped to fit under filesystem limitation. * Scalar updates. * Tweak GitHub Actions CI so that pushing the same commit to multiple branch tips at the same time will not waste building and testing the same thing twice. * The commit-graph verification code that detects mixture of zero and non-zero generation numbers has been updated. * "git diff -w --exit-code" with various options did not work correctly, which is being addressed. * transfer.unpackLimit ought to be used as a fallback, but overrode fetch.unpackLimit and receive.unpackLimit instead. * The use of API between two calls to require_clean_work_tree() from the sequencer code has been cleaned up for consistency. * "git diff --no-such-option" and other corner cases around the exit status of the "diff" command has been corrected. * "git for-each-ref --sort='contents:size'" sorts the refs according to size numerically, giving a ref that points at a blob twelve-byte (12) long before showing a blob hundred-byte (100) long. * Various fixes to the behavior of "rebase -i" when the command got interrupted by conflicting changes. * References from description of the `--patch` option in various manual pages have been simplified and improved. * "git grep -e A --no-or -e B" is accepted, even though the negation of "or" did not mean anything, which has been tightened. * The completion script (in contrib/) has been taught to treat the "-t" option to "git checkout" and "git switch" just like the "--track" option, to complete remote-tracking branches. * "git diff --no-index -R <(one) <(two)" did not work correctly, which has been corrected. * Update "git maintenance" timers' implementation based on systemd timers to work with WSL. * "git diff --cached" codepath did not fill the necessary stat information for a file when fsmonitor knows it is clean and ended up behaving as if it is not clean, which has been corrected. * Clarify how "alias.foo = : git cmd ; aliased-command-string" should be spelled with necessary whitespaces around punctuation marks to work. * HTTP Header redaction code has been adjusted for a newer version of cURL library that shows its traces differently from earlier versions. * An error message given by "git send-email" when given a malformed address did not give correct information, which has been corrected. * UBSan options were not propagated through the test framework to git run via the httpd, unlike ASan options, which has been corrected. Also contains various documentation updates, code clean-ups and minor fixups. @ text @d1 1 a1 1 # $NetBSD: Makefile.version,v 1.119 2023/08/24 09:33:30 adam Exp $ d7 1 a7 1 GIT_VERSION= 2.42.1 @ 1.119 log @git: updated to 2.42.0 Git v2.42 Release Notes ======================= UI, Workflows & Features * "git pack-refs" learns "--include" and "--exclude" to tweak the ref hierarchy to be packed using pattern matching. * 'git worktree add' learned how to create a worktree based on an orphaned branch with `--orphan`. * "git pack-objects" learned to invoke a new hook program that enumerates extra objects to be used as anchoring points to keep otherwise unreachable objects in cruft packs. * Add more "git var" for toolsmiths to learn various locations Git is configured with either via the configuration or hard-coded defaults. * 'git notes append' was taught '--separator' to specify string to insert between paragraphs. * The "git for-each-ref" family of commands learned placeholders related to GPG signature verification. * "git diff --no-index" learned to read from named pipes as if they were regular files, to allow "git diff <(process) <(substitution)" some shells support. * Help newbies by suggesting that there are cases where force-pushing is a valid and sensible thing to update a branch at a remote repository, rather than reconciling with merge/rebase. * "git blame --contents=file" has been taught to work in a bare repository. * "git branch -f X" to repoint the branch X said that X was "checked out" in another worktree, even when branch X was not and instead being bisected or rebased. The message was reworded to say the branch was "in use". * Tone down the warning on SHA-256 repositories being an experimental curiosity. We do not have support for them to interoperate with traditional SHA-1 repositories, but at this point, we do not plan to make breaking changes to SHA-256 repositories and there is no longer need for such a strongly phrased warning. Performance, Internal Implementation, Development Support etc. * "git diff-tree" has been taught to take advantage of the sparse-index feature. * Clang's sanitizer implementation seems to work better than GCC's. (merge d88d727143 jk/ci-use-clang-for-sanitizer-jobs later to maint). * The object traversal using reachability bitmap done by "pack-object" has been tweaked to take advantage of the fact that using "boundary" commits as representative of all the uninteresting ones can save quite a lot of object enumeration. * discover_git_directory() no longer touches the_repository. * "git worktree" learned to work better with sparse index feature. * When the external merge driver is killed by a signal, its output should not be trusted as a resolution with conflicts that is proposed by the driver, but the code did. * The set-up code for the get_revision() API now allows feeding options like --all and --not in the --stdin mode. * Move functions that are not about pure string manipulation out of strbuf.[ch] * "imap-send" codepaths got cleaned up to get rid of unused parameters. * Enumerating refs in the packed-refs file, while excluding refs that match certain patterns, has been optimized. * Mark-up unused parameters in the code so that we can eventually enable -Wunused-parameter by default. * Instead of inventing a custom counter variables for debugging, use existing trace2 facility in the fsync customization codepath. * "git branch --list --format=" and friends are taught a new "%(describe)" placeholder. * Clarify how to choose the starting point for a new topic in developer guidance document. * The implementation of "get_sha1_hex()" that reads a hexadecimal string that spells a full object name has been extended to cope with any hash function used in the repository, but the "sha1" in its name survived. Rename it to get_hash_hex(), a name that is more consistent within its friends like get_hash_hex_algop(). * Command line parser fix, and a small parse-options API update. Fixes since v2.41 ----------------- * "git tag" learned to leave the "$GIT_DIR/TAG_EDITMSG" file when the command failed, so that the user can salvage what they typed. (merge 08c12ec1d0 kh/keep-tag-editmsg-upon-failure later to maint). * The "-s" (silent, squelch) option of the "diff" family of commands did not interact with other options that specify the output format well. This has been cleaned up so that it will clear all the formatting options given before. (merge 9d484b92ed jc/diff-s-with-other-options later to maint). * Update documentation regarding Coccinelle patches. (merge 3bd0097cfc gc/doc-cocci-updates later to maint). * Some atoms that can be used in "--format=" for "git ls-tree" were not supported by "git ls-files", even though they were relevant in the context of the latter. (merge 4d28c4f75f zh/ls-files-format-atoms later to maint). * Document more pseudo-refs and teach the command line completion machinery to complete AUTO_MERGE. (merge 982ff3a649 pb/complete-and-document-auto-merge-and-friends later to maint). * "git submodule" code trusted the data coming from the config (and the in-tree .gitmodules file) too much without validating, leading to NULL dereference if the user mucks with a repository (e.g. submodule..url is removed). This has been corrected. (merge fbc806acd1 tb/submodule-null-deref-fix later to maint). * The value of config.worktree is per-repository, but has been kept in a singleton global variable per process. This has been OK as most Git operations interacted with a single repository at a time, but not right for operations like recursive "grep" that want to access multiple repositories from a single process without forking. The global variable has been eliminated and made into a member in the per-repository data structure. (merge 3867f6d650 vd/worktree-config-is-per-repository later to maint). * "git [-c log.follow=true] log [--follow] ':(glob)f**'" used to barf. (merge 8260bc5902 jk/log-follow-with-non-literal-pathspec later to maint). * Introduce a mechanism to disable replace refs globally and per repository. (merge 9c7d1b057f ds/disable-replace-refs later to maint). * "git cat-file --batch" and friends learned "-Z" that uses NUL delimiter for both input and output. (merge f79e18849b ps/cat-file-null-output later to maint). * The reimplemented "git add -i" did not honor color.ui configuration. (merge 6f74648cea ds/add-i-color-configuration-fix later to maint). * Compilation fix for platforms without D_TYPE in struct dirent. (merge 03bf92b9bf as/dtype-compilation-fix later to maint). * Suggest to refrain from using hex literals that are non-portable when writing printf(1) format strings. (merge f0b68f0546 jt/doc-use-octal-with-printf later to maint). * Simplify error message when run-command fails to start a command. (merge 6d224ac286 rs/run-command-exec-error-on-noent later to maint). * Gracefully deal with a stale MIDX file that lists a packfile that no longer exists. (merge 06f3867865 tb/open-midx-bitmap-fallback later to maint). * Even when diff.ignoreSubmodules tells us to ignore submodule changes, "git commit" with an index that already records changes to submodules should include the submodule changes in the resulting commit, but it did not. (merge 5768478edc js/defeat-ignore-submodules-config-with-explicit-addition later to maint). * When "git commit --trailer=..." invokes the interpret-trailers machinery, it knows what it feeds to interpret-trailers is a full log message without any patch, but failed to express that by passing the "--no-divider" option, which has been corrected. (merge be3d654343 jk/commit-use-no-divider-with-interpret-trailers later to maint). * Avoid breakage of "git pack-objects --cruft" due to inconsistency between the way the code enumerates packfiles in the repository. (merge 73320e49ad tb/collect-pack-filenames-fix later to maint). * We create .pack and then .idx, we consider only packfiles that have .idx usable (those with only .pack are not ready yet), so we should remove .idx before removing .pack for consistency. (merge 0dd1324a73 ds/remove-idx-before-pack later to maint). * Partially revert a sanity check that the rest of the config code was not ready, to avoid triggering it in a corner case. (merge a53f43f900 gc/config-partial-submodule-kvi-fix later to maint). * "git apply" punts when it is fed too large a patch input; the error message it gives when it happens has been clarified. (merge 42612e18d2 pw/apply-too-large later to maint). * During a cherry-pick or revert session that works on multiple commits, "git status" did not give correct information, which has been corrected. (merge a096a889f4 jk/cherry-pick-revert-status later to maint). * A few places failed to differentiate the case where the index is truly empty (nothing added) and we haven't yet read from the on-disk index file, which have been corrected. (merge 2ee045eea1 js/empty-index-fixes later to maint). * "git bugreport" tests did not test what it wanted to test, which has been corrected. (merge 1aa92b8500 ma/t0091-fixup later to maint). * Code snippets in a tutorial document no longer compiled after recent header shuffling, which have been corrected. (merge bbd7c7b7c0 vd/adjust-mfow-doc-to-updated-headers later to maint). * "git ls-files '(attr:X)D/'" that triggers the common prefix optimization codepath failed to read from "D/.gitattributes", which has been corrected. (merge f4a8fde057 jc/pathspec-match-with-common-prefix later to maint). * "git fsck --no-progress" still spewed noise from the commit-graph subsystem, which has been corrected. (merge 9281cd07f0 tb/fsck-no-progress later to maint). * Various offset computation in the code that accesses the packfiles and other data in the object layer has been hardened against arithmetic overflow, especially on 32-bit systems. (merge 9a25cad7e0 tb/object-access-overflow-protection later to maint). * Names of MinGW header files are spelled in mixed case in some source files, but the build host can be using case sensitive filesystem with header files with their name spelled in all lowercase. (merge 4a53d0d0bc mh/mingw-case-sensitive-build later to maint). * Update message mark-up for i18n in "git bundle". (merge bbb6acd998 dk/bundle-i18n-more later to maint). * "git tag --list --points-at X" showed tags that directly refers to object X, but did not list a tag that points at such a tag, which has been corrected. * "./configure --with-expat=no" did not work as a way to refuse use of the expat library on a system with the library installed, which has been corrected. (merge fb8f7269c2 ah/autoconf-fixes later to maint). * When the user edits "rebase -i" todo file so that it starts with a "fixup", which would make it invalid, the command truncated the rest of the file before giving an error and returning the control back to the user. Stop truncating to make it easier to correct such a malformed todo file. (merge 9645a087c2 ah/sequencer-rewrite-todo-fix later to maint). * Rewrite the description of giving a custom command to the submodule..update configuration variable. (merge 7cebc5bd78 pv/doc-submodule-update-settings later to maint). * Adjust to OpenSSL 3+, which deprecates its SHA-1 functions based on its traditional API, by using its EVP API instead. (merge bda9c12073 ew/hash-with-openssl-evp later to maint). * Exclude "." from the set of characters to be removed from the beginning and the end of the human-readable name. (merge 1c04cb0744 bc/ident-dot-is-no-longer-crud-letter later to maint). * "git bisect visualize" stopped running "gitk" on Git for Windows when the command was reimplemented in C around Git 2.34 timeframe. This has been corrected. (merge fff1594fa7 ma/locate-in-path-for-windows later to maint). * "git rebase -i" with a series of squash/fixup, when one of the steps stopped in conflicts and ended up getting skipped, did not handle the accumulated commit log messages, which has been corrected. (merge 6ce7afe163 pw/rebase-skip-commit-message-fix later to maint). * Adjust to newer Term::ReadLine to prevent it from breaking the interactive prompt code in send-email. (merge c016726c2d jk/send-email-with-new-readline later to maint). * Windows updates. (merge 0050f8e401 ds/maintenance-on-windows-fix later to maint). * Correct use of lstat() that assumed a failing call would not clobber the statbuf. (merge 72695d8214 st/mv-lstat-fix later to maint). * Other code cleanup, docfix, build fix, etc. (merge 51f9d2e563 sa/doc-ls-remote later to maint). (merge c6d26a9dda jk/format-patch-message-id-unleak later to maint). (merge f7e063f326 ps/fetch-cleanups later to maint). (merge e4cf013468 tl/quote-problematic-arg-for-clarity later to maint). (merge 20025fdfc7 tz/test-ssh-verifytime-fix later to maint). (merge e48a21df65 tz/test-fix-pthreads-prereq later to maint). (merge 68b51172e3 mh/commit-reach-get-reachable-plug-leak later to maint). (merge aeee1408ce kh/use-default-notes-doc later to maint). (merge 3b8724bce6 jc/test-modernization later to maint). (merge 447a3b7331 jc/test-modernization-2 later to maint). (merge d57fa7fc73 la/doc-interpret-trailers later to maint). (merge 548afb0d9a la/docs-typofixes later to maint). (merge 3744ffcbcd rs/doc-ls-tree-hex-literal later to maint). (merge 6c26da8404 mh/credential-erase-improvements later to maint). (merge 78e56cff69 tz/lib-gpg-prereq-fix later to maint). (merge 80d32e84b5 rj/leakfixes later to maint). (merge 0a868031ed pb/complete-diff-options later to maint). (merge d4f28279ad jc/doc-hash-object-types later to maint). (merge 1876a5ae15 ks/t4205-test-describe-with-abbrev-fix later to maint). (merge 6e6a529b57 jk/fsck-indices-in-worktrees later to maint). (merge 3e81b896f7 rs/packet-length-simplify later to maint). (merge 4c9cb51fe7 mh/doc-credential-helpers later to maint). (merge 3437f549dd jr/gitignore-doc-example-markup later to maint). (merge 947ebd62a0 jc/am-parseopt-fix later to maint). (merge e12cb98e1e jc/branch-parseopt-fix later to maint). (merge d6f598e443 jc/gitignore-doc-pattern-markup later to maint). (merge a2dad4868b jc/transport-parseopt-fix later to maint). (merge 68cbb20e73 jc/parse-options-show-branch later to maint). (merge 3821eb6c3d jc/parse-options-reset later to maint). (merge c48af99a3e bb/trace2-comment-fix later to maint). (merge c95ae3ff9c rs/describe-parseopt-fix later to maint). (merge 36f76d2a25 rs/pack-objects-parseopt-fix later to maint). (merge 30c8c55cbf jc/tree-walk-drop-base-offset later to maint). (merge d089a06421 rs/bundle-parseopt-cleanup later to maint). (merge 823839bda1 ew/sha256-gcrypt-leak-fixes later to maint). (merge a5c01603b3 bc/ignore-clangd-cache later to maint). (merge 12009a182b js/allow-t4000-to-be-indented-with-spaces later to maint). (merge b3dcd24b8a jc/send-email-pre-process-fix later to maint). @ text @d1 1 a1 1 # $NetBSD: Makefile.version,v 1.118 2023/06/05 19:23:23 adam Exp $ d7 1 a7 1 GIT_VERSION= 2.42.0 @ 1.118 log @git: updated to 2.41.0 Git v2.41 Release Notes ======================= UI, Workflows & Features * Allow information carried on the WWW-Authenticate header to be passed to the credential helpers. * A new "fetch.hideRefs" option can be used to exclude specified refs from "rev-list --objects --stdin --not --all" traversal for checking object connectivity, most useful when there are many unrelated histories in a single repository. * "git push" has been taught to allow deletion of refs with one-level names to help repairing a repository who acquired such a ref by mistake. In general, we don't encourage use of such a ref, and creation or update to such a ref is rejected as before. * Allow "git bisect reset" to check out the original branch when the branch is already checked out in a different worktree linked to the same repository. * A few subcommands have been taught to stop users from working on a branch that is being used in another worktree linked to the same repository. * "git format-patch" learned to write a log-message only output file for empty commits. * "git format-patch" honors the src/dst prefixes set to nonstandard values with configuration variables like "diff.noprefix", causing receiving end of the patch that expects the standard -p1 format to break. "format-patch" has been taught to ignore end-user configuration and always use the standard prefixes. This is a backward compatibility breaking change. * Lift the limitation that colored prompts can only be used with PROMPT_COMMAND mode. * "git blame --contents= -- " used to be forbidden, but now it finds the origins of lines starting at contents through the history that leads to . * "git pack-redundant" gave a warning when run, as the command has outlived its usefulness long ago and is nominated for future removal. Now we escalate to give an error. * "git clone" from an empty repository learned to propagate the choice of the hash algorithm from the source repository to the newly created repository over any one of the v0/v1/v2 protocol. * "git mergetool" and "git difftool" learns a new configuration guiDefault to optionally favor configured guitool over non-gui-tool automatically when $DISPLAY is set. * "git branch -d origin/master" would say "no such branch", but it is likely a missed "-r" if refs/remotes/origin/master exists. The command has been taught to give such a hint in its error message. * Clean-up of the code path that deals with merge strategy option handling in "git rebase". * "git clone --local" stops copying from an original repository that has symbolic links inside its $GIT_DIR; an error message when that happens has been updated. * The "--format=..." option of "git for-each-ref", "git branch", and "git tag" commands learn "--omit-empty" to hide refs whose formatting results in an empty string from the output. * The sendemail-validate validate hook learned to pass the total number of input files and where in the sequence each invocation is via environment variables. * When "gc" needs to retain unreachable objects, packing them into cruft packs (instead of exploding them into loose object files) has been offered as a more efficient option for some time. Now the use of cruft packs has been made the default and no longer considered an experimental feature. * The output given by "git blame" that attributes a line to contents taken from the file specified by the "--contents" option shows it differently from a line attributed to the working tree file. * "git send-email" learned to give the e-mail headers to the validate hook by passing an extra argument from the command line. * The credential subsystem learns to help OAuth framework. * The titles of manual pages used to be chomped at an unreasonably short limit, which has been removed. * Error messages given when working on an unborn branch that is checked out in another worktree have been improved. * The documentation was misleading about the interaction between GIT_DEFAULT_HASH and "git clone", which has been clarified to stress that the variable is to be ignored by the command. * "git send-email" learned "--header-cmd=" that can inject arbitrary e-mail header lines to the outgoing messages. * "git fsck" learned to detect bit-flip breakages in the reachability bitmap files. * The "--stdin" option of "git name-rev" has been replaced with the "--annotate-stdin" option more than a year ago. We stop advertising it in the "git name-rev -h" output. * "git push --all" gained an alias "git push --branches". * "git fetch" learned the "--porcelain" option that emits what it did in a machine-parseable format. * "git --attr-source= cmd $args" is a new way to have any command to read attributes not from the working tree but from the given tree object. Performance, Internal Implementation, Development Support etc. * Code clean-up to clarify directory traversal API. * Code clean-up to clarify the rule that "git-compat-util.h" must be the first to be included. * More work towards -Wunused. * Instead of forcing each command to choose to honor GPG related configuration variables, make the subsystem lazily initialize itself. * Remove workaround for ancient versions of DocBook to make it work correctly with groff, which has not been necessary since docbook 1.76 from 2010. * Code clean-up to include and/or uninclude parse-options.h file as needed. * The code path that reports what "git fetch" did to each ref has been cleaned up. * Assorted config API updates. * A few configuration variables to tell the cURL library that different types of ssl-cert and ssl-key are in use have been added. * Split key function and data structure definitions out of cache.h to new header files and adjust the users. * "git fetch --all" does not have to download and handle the same bundleURI over and over, which has been corrected. * "git sparse-checkout" command learns a debugging aid for the sparse rule definitions. * "git write-tree" learns to work better with sparse-index. * The on-disk reverse index that allows mapping from the pack offset to the object name for the object stored at the offset has been enabled by default. * "git fsck" learned to validate the on-disk pack reverse index files. * strtok() and strtok_r() are banned in this codebase. * The detect-compilers script to help auto-tweaking the build system had trouble working with compilers whose version number has extra suffixes. The script has been taught that certain suffixes (like "-win32" in "gcc 10-win32") can be safely stripped as they share the same features and bugs with the version without the suffix. * ctype tests have been taught to test EOF, too. * The implementation of credential helpers used fgets() over fixed size buffers to read protocol messages, causing the remainder of the folded long line to trigger unexpected behaviour, which has been corrected. * The implementation of the default "negotiator", used to find common ancestor over the network for object tranfer, used to be recursive; it was updated to be iterative to conserve stackspace usage. * Our custom callout formatter is no longer used in the documentation formatting toolchain, as the upstream default ones give better output these days. * The tracing mechanism learned to notice and report when auto-discovered bare repositories are being used, as allowing so without explicitly stating the user intends to do so (with setting GIT_DIR for example) can be used with social engineering as an attack vector. * "git diff-files" learned not to expand sparse-index unless needed. Fixes since v2.40 ----------------- * "git fsck" learned to check the index files in other worktrees, just like "git gc" honors them as anchoring points. (merge 8d3e7eac52 jk/fsck-indices-in-worktrees later to maint). * Fix a segfaulting loop. The function and its caller may need further clean-up. (merge c5773dc078 ew/commit-reach-clean-up-flags-fix later to maint). * "git restore" supports options like "--ours" that are only meaningful during a conflicted merge, but these options are only meaningful when updating the working tree files. These options are marked to be incompatible when both "--staged" and "--worktree" are in effect. (merge ee8a88826a ak/restore-both-incompatible-with-conflicts later to maint). * Simplify UI to control progress meter given by "git bundle" command. (merge 8b95521edb jk/bundle-progress later to maint). * "git bundle" learned that "-" is a common way to say that the input comes from the standard input and/or the output goes to the standard output. It used to work only for output and only from the root level of the working tree. (merge 0bbe10313e jk/bundle-use-dash-for-stdfiles later to maint). * Once we start running, we assumed that the list of alternate object databases would never change. Hook into the machinery used to update the list of packfiles during runtime to update this list as well. (merge e2d003dbed ds/reprepare-alternates-when-repreparing-packfiles later to maint). * The code to parse "git rebase -X" was not prepared to see an unparsable option string, which has been corrected. (merge 15a4cc912e ab/fix-strategy-opts-parsing later to maint). * "git add -p" while the index is unmerged sometimes failed to parse the diff output it internally produces and died, which has been corrected. (merge 28d1122f9c jk/add-p-unmerged-fix later to maint). * Fix for a "ls-files --format="%(path)" that produced nonsense output, which was a bug in 2.38. (merge cfb62dd006 aj/ls-files-format-fix later to maint). * "git receive-pack" that responds to "git push" requests failed to clean a stale lockfile when killed in the middle, which has been corrected. (merge c55c30669c ps/receive-pack-unlock-before-die later to maint). * "git rev-parse --quiet foo@@{u}", or anything that asks @@{u} to be parsed with GET_OID_QUIETLY option, did not quietly fail, which has been corrected. (merge dfbfdc521d fc/oid-quietly-parse-upstream later to maint). * Transports that do not support protocol v2 did not correctly fall back to protocol v0 under certain conditions, which has been corrected. (merge eaa0fd6584 jk/fix-proto-downgrade-to-v0 later to maint). * time(2) on glib 2.31+, especially on Linux, goes out of sync with higher resolution timers used for gettimeofday(2) and by the filesystem. Replace all calls to it with a git_time() wrapper and (merge 370ddcbc89 pe/time-use-gettimeofday later to maint). * Code clean-up to use designated initializers in parse-options API. (merge 353e6d4554 sg/parse-options-h-initializers later to maint). * A recent-ish change to allow unicode character classes to be used with "grep -P" triggered a JIT bug in older pcre2 libraries. The problematic change in Git built with these older libraries has been disabled to work around the bug. (merge 14b9a04479 mk/workaround-pcre-jit-ucp-bug later to maint). * The wildmatch library code unlearns exponential behaviour it acquired some time ago since it was borrowed from rsync. (merge 3dc0b7f0dc pw/wildmatch-fixes later to maint). * The index files can become corrupt under certain conditions when the split-index feature is in use, especially together with fsmonitor, which have been corrected. (merge 061dd722dc js/split-index-fixes later to maint). * Document what the pathname-looking strings in "rev-list --object" output are for and what they mean. (merge 15364d2a3c jk/document-rev-list-object-name later to maint). * Fix unnecessary truncation of generation numbers used in-core. (merge d3af1c193d ps/ahead-behind-truncation-fix later to maint). * Code clean-up around the use of the_repository. (merge 4a93b899c1 ab/remove-implicit-use-of-the-repository later to maint). * Consistently spell "Message-ID" as such, not "Message-Id". (merge ba4324c4e1 jc/spell-id-in-both-caps-in-message-id later to maint). * Correct use of an uninitialized structure member. (merge dc12ee77ab jx/cap-object-info-uninitialized-fix later to maint). * Tests had a few places where we ignored PERL_PATH and blindly used /usr/bin/perl, which have been corrected. (merge c1917156a0 jk/use-perl-path-consistently later to maint). * Documentation mark-up fix. (merge 78b6369e67 la/mfc-markup-fix later to maint). * Doc toolchain update to remove old workaround for AsciiDoc. (merge 8806120de6 fc/remove-header-workarounds-for-asciidoc later to maint). * The userdiff regexp patterns for various filetypes that are built into the system have been updated to avoid triggering regexp errors from UTF-8 aware regex engines. (merge be39144954 rs/userdiff-multibyte-regex later to maint). * The approxidate() API has been simplified by losing an extra function that did the same thing as another one. (merge 8a7f0b666f rs/remove-approxidate-relative later to maint). * Code clean-up to replace a hardcoded constant with a CPP macro. (merge c870de6502 rs/get-tar-commit-id-use-defined-const later to maint). * Doc build simplification. (merge 9a09ed3229 fc/doc-stop-using-manversion later to maint). * "git archive" run from a subdirectory mishandled attributes and paths outside the current directory. (merge 92b1dd1b9e rs/archive-from-subdirectory-fixes later to maint). * The code to parse capability list for v0 on-wire protocol fell into an infinite loop when a capability appears multiple times, which has been corrected. * Geometric repacking ("git repack --geometric=") in a repository that borrows from an alternate object database had various corner case bugs, which have been corrected. (merge d85cd18777 ps/fix-geom-repack-with-alternates later to maint). * The "%GT" placeholder for the "--format" option of "git log" and friends caused BUG() to trigger on a commit signed with an unknown key, which has been corrected. (merge 7891e46585 jk/gpg-trust-level-fix later to maint). * The completion script used to use bare "read" without the "-r" option to read the contents of various state files, which risked getting confused with backslashes in them. This has been corrected. (merge 197152098a ek/completion-use-read-r-to-read-literally later to maint). * A small API fix to the ort merge strategy backend. (merge 000c4ceca7 en/ort-finalize-after-0-merges-fix later to maint). * The commit object parser has been taught to be a bit more lenient to parse timestamps on the author/committer line with a malformed author/committer ident. (merge 90ef0f14eb jk/parse-commit-with-malformed-ident later to maint). * Retitle a test script with an overly narrow name. (merge 8bb19c14fb ob/t3501-retitle later to maint). * Doc update to clarify how text and eol attributes interact to specify the end-of-line conversion. (merge 6696077ace ah/doc-attributes-text later to maint). * Gitk updates from GfW project. (merge 99e70f3077 js/gitk-fixes-from-gfw later to maint). * "git diff --dirstat" leaked memory, which has been plugged. (merge 83973981eb jc/dirstat-plug-leaks later to maint). * "git merge-tree" reads the basic configuration, which can be used by git forges to disable replace-refs feature. (merge b6551feadf ds/merge-tree-use-config later to maint). * A few bugs in the sequencer machinery that results in miscounting the steps have been corrected. (merge 170eea9750 js/rebase-count-fixes later to maint). * Other code cleanup, docfix, build fix, etc. (merge f7111175df as/doc-markup-fix later to maint). (merge 90ff7c9898 fc/test-aggregation-clean-up later to maint). (merge 9b0c7f308a jc/am-doc-refer-to-format-patch later to maint). (merge b10cbdac4c bb/unicode-width-table-15 later to maint). (merge 3457b50e8c ab/retire-scripted-add-p later to maint). (merge d52fcf493b ds/p2000-fix-grep-sparse later to maint). (merge ec063d2591 ss/hashmap-typofix later to maint). (merge 1aaed69d11 rs/archive-mtime later to maint). (merge 2da2cc9b28 ob/rollback-after-commit-lock-failure later to maint). (merge 54dbd0933b ob/sequencer-save-head-simplify later to maint). (merge a93cbe8d78 ar/test-cleanup-unused-file-creation later to maint). (merge cc48ddd937 jk/chainlint-fixes later to maint). (merge 4833b08426 ow/ref-format-remove-unused-member later to maint). (merge d0ea2ca1cf dw/doc-submittingpatches-grammofix later to maint). (merge fd72637423 ar/t2024-checkout-output-fix later to maint). (merge d45cbe3fe0 ob/sequencer-i18n-fix later to maint). (merge b734fe49fd ob/messages-capitalize-exception later to maint). (merge ad353d7e77 ma/gittutorial-fixes later to maint). (merge a5855fd8d4 ar/test-cleanup-unused-file-creation-part2 later to maint). (merge 0c5308af30 sd/doc-gitignore-and-rm-cached later to maint). (merge cbb83daeaf kh/doc-interpret-trailers-updates later to maint). (merge 3d77fbb664 ar/config-count-tests-updates later to maint). (merge b7cf25c8f4 jc/t9800-fix-use-of-show-s-raw later to maint). @ text @d1 1 a1 1 # $NetBSD: Makefile.version,v 1.117 2023/04/26 08:44:38 adam Exp $ d7 1 a7 1 GIT_VERSION= 2.41.0 @ 1.117 log @git: updated to 2.40.1 Git v2.40.1 Release Notes ========================= This release merges up the fix that appears in v2.30.9, v2.31.8, v2.32.7, v2.33.8, v2.34.8, v2.35.8, v2.36.6, v2.37.7, v2.38.5 and v2.39.3 to address the security issues CVE-2023-25652, CVE-2023-25815, and CVE-2023-29007; see the release notes for these versions for details. @ text @d1 1 a1 1 # $NetBSD: Makefile.version,v 1.116 2023/03/14 08:03:35 adam Exp $ d7 1 a7 1 GIT_VERSION= 2.40.1 @ 1.116 log @git: updated to 2.40.0 Git v2.40 Release Notes ======================= UI, Workflows & Features * "merge-tree" learns a new `--merge-base` option. * "git jump" (in contrib/) learned to present the "quickfix list" to its standard output (instead of letting it consumed by the editor it invokes), and learned to also drive emacs/emacsclient. * "git var UNKNOWN_VARIABLE" and "git var VARIABLE" with the variable given an empty value used to behave identically. Now the latter just gives an empty output, while the former still gives an error message. * Introduce a case insensitive mode to the Bash completion helpers. * The advice message given by "git status" when it takes long time to enumerate untracked paths has been updated. * Just like "git var GIT_EDITOR" abstracts the complex logic to choose which editor gets used behind it, "git var" now give support to GIT_SEQUENCE_EDITOR. * "git format-patch" learned to honor format.mboxrd even when sending patches to the standard output stream, * 'cat-file' gains mailmap support for its '--batch-check' and '-s' options. * Conditionally skip the pre-applypatch and applypatch-msg hooks when applying patches with 'git am'. * Introduce an optional configuration to allow the trailing hash that protects the index file from bit flipping. * "git check-attr" learned to take an optional tree-ish to read the .gitattributes file from. * "scalar" learned to give progress bar. * "grep -P" learned to use Unicode Character Property to grok character classes when processing \b and \w etc. * "git rebase" often ignored incompatible options instead of complaining, which has been corrected. * "scalar" warns but continues when its periodic maintenance feature cannot be enabled. * The bundle-URI subsystem adds support for creation-token heuristics to help incremental fetches. * Userdiff regexp update for Java language. * "git fetch --jobs=0" used to hit a BUG(), which has been corrected to use the available CPUs. * An invalid label or ref in the "rebase -i" todo file used to trigger an runtime error. SUch an error is now diagnosed while the todo file is parsed. * The "diff" drivers specified by the "diff" attribute attached to paths can now specify which algorithm (e.g. histogram) to use. * "git range-diff" learned --abbrev= option. * "git archive HEAD^{tree}" records the paths with the current timestamp in the archive, making it harder to obtain a stable output. The command learned the --mtime option to specify an arbitrary timestamp (e.g. --mtime="@@0 +0000" for the epoch). * The credential subsystem learned that a password may have an explicit expiration. * The format.attach configuration variable lacked a way to override a value defined in a lower-priority configuration file (e.g. the system one) by redefining it in a higher-priority configuration file. Now, setting format.attach to an empty string means show the patch inline in the e-mail message, without using MIME attachment. This is a backward incompatible change. Performance, Internal Implementation, Development Support etc. * `git bisect` becomes a builtin. * The pack-bitmap machinery is taught to log the paths of redundant bitmap(s) to trace2 instead of stderr. * Use the SHA1DC implementation on macOS, just like other platforms, by default. * Even in a repository with promisor remote, it is useless to attempt to lazily attempt fetching an object that is expected to be commit, because no "filter" mode omits commit objects. Take advantage of this assumption to fail fast on errors. * Stop using "git --super-prefix" and narrow the scope of its use to the submodule--helper. * Stop running win+VS build by default. * CI updates. We probably want a clean-up to move the long shell script embedded in yaml file into a separate file, but that can come later. * Use `git diff --no-index` as a test_cmp on Windows. We'd probably need to revisit "do we really want to, and have to, lose CRLF vs LF?" later, at which time we may be able to further clean this up by replacing "git diff --no-index" with "diff -u". * Avoid unnecessary builds in CI, with settings configured in ci-config. * Plug leaks in sequencer subsystem and its users. * In-tree .gitattributes update to match the way we recommend our users to mark a file as text. (merge 1f34e0cd3d po/attributes-text later to maint). * Finally retire the scripted "git add -p/-i" implementation and have everybody use the one reimplemented in C. Fixes since v2.39 ----------------- * Various leak fixes. * Fix a bug where `pack-objects` would not respect multiple `--filter` arguments when invoked directly. (merge d4f7036887 rs/multi-filter-args later to maint). * Make fsmonitor more robust to avoid the flakiness seen in t7527. (merge 6692d45477 jh/t7527-unflake-by-forcing-cookie later to maint). * Stop using deprecated macOS API in fsmonitor. (merge b0226007f0 jh/fsmonitor-darwin-modernize later to maint). * Redefining system functions for a few functions did not follow our usual "implement git_foo() and #define foo(args) git_foo(args)" pattern, which has broken build for some folks. * The way the diff machinery prepares the options array for the parse_options API has been refactored to avoid resource leaks. (merge 189e97bc4b rs/diff-parseopts later to maint). * Correct pthread API usage. (merge 786e67611d sx/pthread-error-check-fix later to maint). * The code to auto-correct a misspelt subcommand unnecessarily called into git_default_config() from the early config codepath, which was a no-no. This has bee corrected. (merge 0918d08887 sg/help-autocorrect-config-fix later to maint). * "git http-fetch" (which is rarely used) forgot to identify itself in the trace2 output. (merge 7abb43cbc8 jt/http-fetch-trace2-report-name later to maint). * The output from "git diff --stat" on an unmerged path lost the terminating LF in Git 2.39, which has been corrected. (merge 209d9cb011 pg/diff-stat-unmerged-regression-fix later to maint). * "git pull -v --recurse-submodules" attempted to pass "-v" down to underlying "git submodule update", which did not understand the request and barfed, which has been corrected. (merge 6f65f84766 ss/pull-v-recurse-fix later to maint). * When given a pattern that matches an empty string at the end of a line, the code to parse the "git diff" line-ranges fell into an infinite loop, which has been corrected. * Fix the sequence to fsync $GIT_DIR/packed-refs file that forgot to flush its output to the disk.. * Fix to a small regression in 2.38 days. * "git diff --relative" did not mix well with "git diff --ext-diff", which has been corrected. * The logic to see if we are using the "cone" mode by checking the sparsity patterns has been tightened to avoid mistaking a pattern that names a single file as specifying a cone. * Deal with a few deprecation warning from cURL library. * Doc update for environment variables set when hooks are invoked. * Document ORIG_HEAD a bit more. * "git ls-tree --format='%(path) %(path)' $tree $path" showed the path three times, which has been corrected. * Remove "git env--helper" and demote it to a test-tool subcommand. (merge 4a1baacd46 ab/test-env-helper later to maint). * Newer regex library macOS stopped enabling GNU-like enhanced BRE, where '\(A\|B\)' works as alternation, unless explicitly asked with the REG_ENHANCED flag. "git grep" now can be compiled to do so, to retain the old behaviour. * Pthread emulation on Win32 leaked thread handle when a thread is joined. (merge 238a9dfe86 sk/win32-close-handle-upon-pthread-join later to maint). * "git send-email -v 3" used to be expanded to "git send-email --validate 3" when the user meant to pass them down to "format-patch", which has been corrected. (merge 8774aa56ad km/send-email-with-v-reroll-count later to maint). * Document that "branch -f " disables only the safety to avoid recreating an existing branch. * "git fetch ", when "" of remotes lists the same remote twice, unnecessarily failed when parallel fetching was enabled, which has been corrected. (merge 06a668cb90 cw/fetch-remote-group-with-duplication later to maint). * Clarify how "checkout -b/-B" and "git branch [-f]" are similar but different in the documentation. * "git hash-object" now checks that the resulting object is well formed with the same code as "git fsck". (merge 8e4309038f jk/hash-object-fsck later to maint). * Improve the error message given when private key is not loaded in the ssh agent in the codepath to sign with an ssh key. (merge dce7b31126 as/ssh-signing-improve-key-missing-error later to maint). * Adjust "git request-pull" to strip embedded signature from signed tags to notice non-PGP signatures. (merge a9cad02538 gm/request-pull-with-non-pgp-signed-tags later to maint). * Remove support for MSys, which now lags way behind MSys2. (merge 2987407f3c hj/remove-msys-support later to maint). * Fix use of CreateThread() API call made early in the windows start-up code. (merge 592bcab61b sk/winansi-createthread-fix later to maint). * "git pack-objects" learned to release delta-island bitmap data when it is done using it, saving peak heap memory usage. (merge 647982bb71 ew/free-island-marks later to maint). * In an environment where dynamically generated code is prohibited to run (e.g. SELinux), failure to JIT pcre patterns is expected. Fall back to interpreted execution in such a case. (merge 50b6ad55b0 cb/grep-fallback-failing-jit later to maint). * "git name-rev" heuristics update. (merge b2182a8730 en/name-rev-make-taggerdate-much-less-important later to maint). * Remove more remaining uses of macros that relies on the_index singleton instance without explicitly spelling it out. * Remove unnecessary explicit sizing of strbuf. (merge 93ea118bed rs/cache-tree-strbuf-growth-fix later to maint). * Doc update. (merge d9ec3b0dc0 jk/doc-ls-remote-matching later to maint). * Error messages given upon a signature verification failure used to discard the errors from underlying gpg program, which has been corrected. (merge ad6b320756 js/gpg-errors later to maint). * Update --date=default documentation. (merge 9deef088ae rd/doc-default-date-format later to maint). * A test helper had a single write(2) of 256kB, which was too big for some platforms (e.g. NonStop), which has been corrected by using xwrite() wrapper appropriately. (merge 58eab6ff13 jc/genzeros-avoid-raw-write later to maint). * sscanf(3) used in "git symbolic-ref --short" implementation found to be not working reliably on macOS in UTF-8 locales. Rewrite the code to avoid sscanf() altogether to work it around. (merge 613bef56b8 jk/shorten-unambiguous-ref-wo-sscanf later to maint). * Various fix-ups on HTTP tests. (merge 8f2146dbf1 jk/http-test-fixes later to maint). * Fixes to code that parses the todo file used in "rebase -i". (merge 666b6e1135 pw/rebase-i-parse-fix later to maint). * Test library clean-up. (merge c600a91c94 ar/test-lib-remove-stale-comment later to maint). * Other code cleanup, docfix, build fix, etc. (merge 4eb1ccecd4 dh/mingw-ownership-check-typofix later to maint). (merge f95526419b ar/typofix-gitattributes-doc later to maint). (merge 27875aeec9 km/doc-branch-start-point later to maint). (merge 35c194dc57 es/t1509-root-fixes later to maint). (merge 7b341645e3 pw/ci-print-failure-name-fix later to maint). (merge bcb71d45bf jx/t1301-updates later to maint). (merge ebdc46c242 jc/doc-diff-patch.txt later to maint). (merge a87a20cbb4 ar/test-cleanup later to maint). (merge f5156f1885 ar/bisect-doc-update later to maint). (merge fca2d86c97 jk/interop-error later to maint). (merge cf4936ed74 tl/ls-tree-code-clean-up later to maint). (merge dcb47e52b0 en/t6426-todo-cleanup later to maint). (merge 5b8db44bdd jc/format-patch-v-unleak later to maint). (merge 590b636737 jk/hash-object-literally-fd-leak later to maint). (merge 5458ba0a4d tb/t0003-invoke-dd-more-portably later to maint). (merge 70661d288b ar/markup-em-dash later to maint). (merge e750951e74 en/ls-files-doc-update later to maint). (merge 4f542975d1 mh/doc-credential-cache-only-in-core later to maint). (merge 3a2ebaebc7 gc/index-format-doc later to maint). (merge b08edf709d jk/httpd-test-updates later to maint). (merge d85e9448dd wl/new-command-doc later to maint). (merge d912a603ed kf/t5000-modernise later to maint). (merge e65b868d07 rs/size-t-fixes later to maint). (merge 3eb1e1ca9a ab/config-h-remove-unused later to maint). (merge d390e08076 cw/doc-pushurl-vs-url later to maint). (merge 567342fc77 rs/ctype-test later to maint). (merge d35d8f2e7a ap/t2015-style-update later to maint). @ text @d1 1 a1 1 # $NetBSD: Makefile.version,v 1.115 2023/02/14 18:43:18 adam Exp $ d7 1 a7 1 GIT_VERSION= 2.40.0 @ 1.116.2.1 log @Pullup ticket #6756 - requested by taca devel/git-base: security update devel/git: version update Revisions pulled up: - devel/git-base/Makefile 1.104 - devel/git-base/distinfo 1.133 - devel/git/Makefile.version 1.117 ------------------------------------------------------------------- Module Name: pkgsrc Committed By: adam Date: Wed Apr 26 08:44:38 UTC 2023 Modified Files: pkgsrc/devel/git: Makefile.version pkgsrc/devel/git-base: Makefile distinfo Log Message: git: updated to 2.40.1 Git v2.40.1 Release Notes ============ This release merges up the fix that appears in v2.30.9, v2.31.8, v2.32.7, v2.33.8, v2.34.8, v2.35.8, v2.36.6, v2.37.7, v2.38.5 and v2.39.3 to address the security issues CVE-2023-25652, CVE-2023-25815, and CVE-2023-29007; see the release notes for these versions for details. To generate a diff of this commit: cvs rdiff -u -r1.116 -r1.117 pkgsrc/devel/git/Makefile.version cvs rdiff -u -r1.103 -r1.104 pkgsrc/devel/git-base/Makefile cvs rdiff -u -r1.132 -r1.133 pkgsrc/devel/git-base/distinfo @ text @d1 1 a1 1 # $NetBSD: Makefile.version,v 1.116 2023/03/14 08:03:35 adam Exp $ d7 1 a7 1 GIT_VERSION= 2.40.1 @ 1.115 log @git: updated to 2.39.2 Git v2.39.2 Release Notes ========================= This release merges up the fixes that appear in v2.30.8, v2.31.7, v2.32.6, v2.33.7, v2.34.7, v2.35.7, v2.36.5, v2.37.6 and v2.38.4 to address the security issues CVE-2023-22490 and CVE-2023-23946; see the release notes for these versions for details. @ text @d1 1 a1 1 # $NetBSD: Makefile.version,v 1.114 2023/01/18 15:44:25 otis Exp $ d7 1 a7 1 GIT_VERSION= 2.39.2 @ 1.114 log @Git 2.39.1 release notes ======================== This maintenance releass is to address the security issues identified as CVE-2022-41903 and CVE-2022-23521. * CVE-2022-41903: git log has the ability to display commits using an arbitrary format with its --format specifiers. This functionality is also exposed to git archive via the export-subst gitattribute. When processing the padding operators (e.g., %<(, %<|(, %>(, %>>(, or %><( ), an integer overflow can occur in pretty.c::format_and_pad_commit() where a size_t is improperly stored as an int, and then added as an offset to a subsequent memcpy() call. This overflow can be triggered directly by a user running a command which invokes the commit formatting machinery (e.g., git log --format=...). It may also be triggered indirectly through git archive via the export-subst mechanism, which expands format specifiers inside of files within the repository during a git archive. This integer overflow can result in arbitrary heap writes, which may result in remote code execution. * CVE-2022-23521: gitattributes are a mechanism to allow defining attributes for paths. These attributes can be defined by adding a `.gitattributes` file to the repository, which contains a set of file patterns and the attributes that should be set for paths matching this pattern. When parsing gitattributes, multiple integer overflows can occur when there is a huge number of path patterns, a huge number of attributes for a single pattern, or when the declared attribute names are huge. These overflows can be triggered via a crafted `.gitattributes` file that may be part of the commit history. Git silently splits lines longer than 2KB when parsing gitattributes from a file, but not when parsing them from the index. Consequentially, the failure mode depends on whether the file exists in the working tree, the index or both. This integer overflow can result in arbitrary heap reads and writes, which may result in remote code execution. Full release notes can be found at: https://github.com/git/git/blob/master/Documentation/RelNotes/2.39.1.txt https://github.com/git/git/blob/master/Documentation/RelNotes/2.30.7.txt @ text @d1 1 a1 1 # $NetBSD: Makefile.version,v 1.113 2022/12/19 10:04:34 adam Exp $ d7 1 a7 1 GIT_VERSION= 2.39.1 @ 1.113 log @git: updated to 2.39.0 Git v2.39 Release Notes ======================= UI, Workflows & Features ------------------------ * "git grep" learned to expand the sparse-index more lazily and on demand in a sparse checkout. * By default, use of fsmonitor on a repository on networked filesystem is disabled. Add knobs to make it workable on macOS. * After checking out a "branch" that is a symbolic-ref that points at another branch, "git symbolic-ref HEAD" reports the underlying branch, not the symbolic-ref the user gave checkout as argument. The command learned the "--no-recurse" option to stop after dereferencing a symbolic-ref only once. * "git branch --edit-description @@{-1}" is now a way to edit branch description of the branch you were on before switching to the current branch. * "git merge-tree --stdin" is a new way to request a series of merges and report the merge results. * "git shortlog" learned to group by the "format" string. * A new "--include-whitespace" option is added to "git patch-id", and existing bugs in the internal patch-id logic that did not match what "git patch-id" produces have been corrected. * Enable gc.cruftpacks by default for those who opt into feature.experimental setting. * "git repack" learns to send cruft objects out of the way into packfiles outside the repository. * 'scalar reconfigure -a' is taught to automatically remove scalar.repo entires which no longer exist. * Redact headers from cURL's h2h3 module in GIT_CURL_VERBOSE and others. * 'git maintenance register' is taught to write configuration to an arbitrary path, and 'git for-each-repo' is taught to expand tilde characters in paths. * When creating new notes, the template used to get a stray empty newline, which has been removed. * "git receive-pack" used to use all the local refs as the boundary for checking connectivity of the data "git push" sent, but now it uses only the refs that it advertised to the pusher. In a repository with the .hideRefs configuration, this reduces the resources needed to perform the check. * With '--recurse-submodules=on-demand', all submodules are recursively pushed. Performance, Internal Implementation, Development Support etc. -------------------------------------------------------------- * With a bit of header twiddling, use the native regexp library on macOS instead of the compat/ one. * Prepare for GNU [ef]grep that throw warning of their uses. * Sources related to fuzz testing have been moved down to their own directory. * Most credential helpers ignored unknown entries in a credential description, but a few died upon seeing them. The latter were taught to ignore them, too * "scalar unregister" in a repository that is already been unregistered reported an error. * Remove error detection from a function that fetches from promisor remotes, and make it die when such a fetch fails to bring all the requested objects, to give an early failure to various operations. * Update CodingGuidelines to clarify what features to use and avoid in C99. * Avoid false-positive from LSan whose assumption may be broken with higher optimization levels. * Enable address and undefined sanitizer tasks at GitHub Actions CI. * More UNUSED annotation to help using -Wunused option with the compiler. (merge 4b992f0a24 jk/unused-anno-more later to maint). * Rewrite a deep recursion in the skipping negotiator to use a loop with on-heap prio queue to avoid stack wastage. * Add documentation for message IDs in fsck error messages. * Define the logical elements of a "bundle list", data structure to store them in-core, format to transfer them, and code to parse them. * The role the security mailing list plays in an embargoed release has been documented. * Two new facilities, "timer" and "counter", are introduced to the trace2 API. * Code simplification by using strvec_pushf() instead of building an argument in a separate strbuf. * Make sure generated dependency file is stably sorted to help developers debugging their build issues. * The glossary entries for "commit-graph file" and "reachability bitmap" have been added. * Various tests exercising the transfer.credentialsInUrl configuration are taught to avoid making requests which require resolving localhost to reduce CI-flakiness. * A redundant diagnostic message is dropped from test_path_is_missing(). * Simplify the run-command API. * Update the actions/github-script dependency in CI to avoid a deprecation warning. * Progress on being able to initialize a rev_info struct with a macro. * Add trace2 counters to the region to clear skip worktree bits in a sparse checkout. * Modernize test script to avoid "test -f" and friends. * Avoid calling 'cache_tree_update()' when doing so would be redundant. * Update the credential-cache documentation to provide a more realistic example. * Makefile comments updates and reordering to clarify knobs used to choose SHA implementations. * A design document for sparse-checkout's future directions has been added. * Teach chainlint.pl to annotate the original test definition instead of the token stream. * "make coccicheck" is time consuming. It has been made to run more incrementally. * `parse_object()` has been hardened to check for the existence of a suspected blob object. * The build procedure has been adjusted to GNUmake version 4.4, which made some changes to how pattern rule with multiple targets are handled. Fixes since v2.38 ----------------- * The codepath that reads from the index v4 had unaligned memory accesses, which has been corrected. * Fix messages incorrectly marked for translation. * "git fsck" failed to release contents of tree objects already used from the memory, which has been fixed. * "git clone" did not like to see the "--bare" and the "--origin" options used together without a good reason. * "git remote rename" failed to rename a remote without fetch refspec, which has been corrected. * Documentation on various Boolean GIT_* environment variables have been clarified. * "git rebase -i" can mistakenly attempt to apply a fixup to a commit itself, which has been corrected. * "git multi-pack-index repack/expire" used to repack unreachable cruft into a new pack, which have been corrected. * In read-only repositories, "git merge-tree" tried to come up with a merge result tree object, which it failed (which is not wrong) and led to a segfault (which is bad), which has been corrected. * Force C locale while running tests around httpd to make sure we can find expected error messages in the log. * Fix a logic in "mailinfo -b" that miscomputed the length of a substring, which lead to an out-of-bounds access. * The codepath to sign learned to report errors when it fails to read from "ssh-keygen". * Code clean-up that results in plugging a leak. * "GIT_EDITOR=: git branch --edit-description" resulted in failure, which has been corrected. * The code to clean temporary object directories (used for quarantine) tried to remove them inside its signal handler, which was a no-no. * Update comment in the Makefile about the RUNTIME_PREFIX config knob. * Clarify that "the sentence after : prefix does not begin with a capital letter" rule applies only to the commit title. * "git branch --edit-description" on an unborn branch misleadingly said that no such branch exists, which has been corrected. * Work around older clang that warns against C99 zero initialization syntax for struct. * Giving "--invert-grep" and "--all-match" without "--grep" to the "git log" command resulted in an attempt to access grep pattern expression structure that has not been allocated, which has been corrected. (merge db84376f98 ab/grep-simplify-extended-expression later to maint). * "git diff rev^!" did not show combined diff to go to the rev from its parents. (merge a79c6b6081 rs/diff-caret-bang-with-parents later to maint). * Allow configuration files in "protected" scopes to include other configuration files. (merge ecec57b3c9 gc/bare-repo-discovery later to maint). * Give a bit more diversity to macOS CI by using sha1dc in one of the jobs (the other one tests Apple Common Crypto). (merge 1ad5c3df35 jc/ci-osx-with-sha1dc later to maint). * A bugfix with tracing support in midx codepath (merge e9c3839944 tb/midx-bitmap-selection-fix later to maint). * When geometric repacking feature is in use together with the --pack-kept-objects option, we lost packs marked with .keep files. (merge 197443e80a tb/save-keep-pack-during-geometric-repack later to maint). * Move a global variable added as a hack during regression fixes to its proper place in the API. (merge 0b0ab95f17 ab/run-hook-api-cleanup later to maint). * Update to build procedure with VS using CMake/CTest. (merge c858750b41 js/cmake-updates later to maint). * The short-help text shown by "git cmd -h" and the synopsis text shown at the beginning of "git help cmd" have been made more consistent. * When creating a multi-pack bitmap, remove per-pack bitmap files unconditionally as they will never be consulted. (merge 55d902cd61 tb/remove-unused-pack-bitmap later to maint). * Fix a longstanding syntax error in Git.pm error codepath. * "git diff --stat" etc. were invented back when everything was ASCII and strlen() was a way to measure the display width of a string; adjust them to compute the display width assuming UTF-8 pathnames. (merge ce8529b2bb tb/diffstat-with-utf8-strwidth later to maint). * "git branch --edit-description" can exit with status -1 which is not a good practice; it learned to use 1 as everybody else instead. * "git apply" limits its input to a bit less than 1 GiB. * Merging a branch with directory renames into a branch that changes the directory to a symlink was mishandled by the ort merge strategy, which has been corrected. * A bugfix to "git subtree" in its split and merge features. * Fix some bugs in the reflog messages when rebasing and changes the reflog messages of "rebase --apply" to match "rebase --merge" with the aim of making the reflog easier to parse. * "git rebase --keep-base" used to discard the commits that are already cherry-picked to the upstream, even when "keep-base" meant that the base, on top of which the history is being rebuilt, does not yet include these cherry-picked commits. The --keep-base option now implies --reapply-cherry-picks and --no-fork-point options. * The way "git repack" created temporary files when it received a signal was prone to deadlocking, which has been corrected. * Various tests exercising the transfer.credentialsInUrl configuration are taught to avoid making requests which require resolving localhost to reduce CI-flakiness. * The adjust_shared_perm() helper function learned to refrain from setting the "g+s" bit on directories when it is not necessary. * "git archive" mistakenly complained twice about a missing executable, which has been corrected. * Fix a bug where `git branch -d` did not work on an orphaned HEAD. * `git rebase --update-refs` would delete references when all `update-ref` commands in the sequencer were removed, which has been corrected. * Fix a regression in the bisect-helper which mistakenly treats arguments to the command given to 'git bisect run' as arguments to the helper. * Correct an error where `git rebase` would mistakenly use a branch or tag named "refs/rewritten/xyz" when missing a rebase label. * Assorted fixes of parsing end-user input as integers. (merge 14770cf0de pw/config-int-parse-fixes later to maint). * "git prune" may try to iterate over .git/objects/pack for trash files to remove in it, and loudly fail when the directory is missing, which is not necessary. The command has been taught to ignore such a failure. (merge 6974765352 ew/prune-with-missing-objects-pack later to maint). * Add one more candidate directory that may house httpd modules while running tests. (merge 1c7dc23d41 es/locate-httpd-module-location-in-test later to maint). * A handful of leaks in the line-log machinery have been plugged. * The format of a line in /proc/cpuinfo that describes a CPU on s390x looked different from everybody else, and the code in chainlint.pl failed to parse it. (merge 1f51b77f4f ah/chainlint-cpuinfo-parse-fix later to maint). * Adjust the GitHub CI to newer ubuntu release. (merge 0d3507f3e7 jx/ci-ubuntu-fix later to maint). * Other code cleanup, docfix, build fix, etc. (merge 413bc6d20a ds/cmd-main-reorder later to maint). (merge 8d2863e4ed nw/t1002-cleanup later to maint). (merge 7c2dc122f9 rs/list-objects-filter-leakfix later to maint). (merge 288fcb1c94 zk/push-use-bitmaps later to maint). (merge 42db324c0f km/merge-recursive-typofix later to maint). @ text @d1 1 a1 1 # $NetBSD: Makefile.version,v 1.112 2022/12/12 22:03:23 adam Exp $ d7 1 a7 1 GIT_VERSION= 2.39.0 @ 1.113.2.1 log @Pullup ticket #6727 - requested by otis devel/git: security fix Revisions pulled up: - devel/git-base/distinfo 1.130 - devel/git/Makefile.version 1.114 --- Module Name: pkgsrc Committed By: otis Date: Wed Jan 18 15:44:25 UTC 2023 Modified Files: pkgsrc/devel/git: Makefile.version pkgsrc/devel/git-base: distinfo Log Message: Git 2.39.1 release notes ======================== This maintenance releass is to address the security issues identified as CVE-2022-41903 and CVE-2022-23521. * CVE-2022-41903: git log has the ability to display commits using an arbitrary format with its --format specifiers. This functionality is also exposed to git archive via the export-subst gitattribute. When processing the padding operators (e.g., %<(, %<|(, %>(, %>>(, or %><( ), an integer overflow can occur in pretty.c::format_and_pad_commit() where a size_t is improperly stored as an int, and then added as an offset to a subsequent memcpy() call. This overflow can be triggered directly by a user running a command which invokes the commit formatting machinery (e.g., git log --format=...). It may also be triggered indirectly through git archive via the export-subst mechanism, which expands format specifiers inside of files within the repository during a git archive. This integer overflow can result in arbitrary heap writes, which may result in remote code execution. * CVE-2022-23521: gitattributes are a mechanism to allow defining attributes for paths. These attributes can be defined by adding a `.gitattributes` file to the repository, which contains a set of file patterns and the attributes that should be set for paths matching this pattern. When parsing gitattributes, multiple integer overflows can occur when there is a huge number of path patterns, a huge number of attributes for a single pattern, or when the declared attribute names are huge. These overflows can be triggered via a crafted `.gitattributes` file that may be part of the commit history. Git silently splits lines longer than 2KB when parsing gitattributes from a file, but not when parsing them from the index. Consequentially, the failure mode depends on whether the file exists in the working tree, the index or both. This integer overflow can result in arbitrary heap reads and writes, which may result in remote code execution. Full release notes can be found at: https://github.com/git/git/blob/master/Documentation/RelNotes/2.39.1.txt https://github.com/git/git/blob/master/Documentation/RelNotes/2.30.7.txt @ text @d1 1 a1 1 # $NetBSD: Makefile.version,v 1.113 2022/12/19 10:04:34 adam Exp $ d7 1 a7 1 GIT_VERSION= 2.39.1 @ 1.112 log @git: updated to 2.38.2 Git 2.38.2 Release Notes ======================== This is to backport various fixes accumulated during the development towards Git 2.39, the next feature release. Fixes since v2.38.1 ------------------- * Update CodingGuidelines to clarify what features to use and avoid in C99. * The codepath that reads from the index v4 had unaligned memory accesses, which has been corrected. * "git remote rename" failed to rename a remote without fetch refspec, which has been corrected. * "git clone" did not like to see the "--bare" and the "--origin" options used together without a good reason. * Fix messages incorrectly marked for translation. * "git fsck" failed to release contents of tree objects already used from the memory, which has been fixed. * "git rebase -i" can mistakenly attempt to apply a fixup to a commit itself, which has been corrected. * In read-only repositories, "git merge-tree" tried to come up with a merge result tree object, which it failed (which is not wrong) and led to a segfault (which is bad), which has been corrected. * Force C locale while running tests around httpd to make sure we can find expected error messages in the log. * Fix a logic in "mailinfo -b" that miscomputed the length of a substring, which lead to an out-of-bounds access. * The codepath to sign learned to report errors when it fails to read from "ssh-keygen". * "GIT_EDITOR=: git branch --edit-description" resulted in failure, which has been corrected. * Documentation on various Boolean GIT_* environment variables have been clarified. * "git multi-pack-index repack/expire" used to repack unreachable cruft into a new pack, which have been corrected. * The code to clean temporary object directories (used for quarantine) tried to remove them inside its signal handler, which was a no-no. * "git branch --edit-description" on an unborh branch misleadingly said that no such branch exists, which has been corrected. * GitHub CI settings have been adjusted to recent reality, merging and cherry-picking necessary topics that have been prepared for Git 2.39. * `git rebase --update-refs` would delete references when all `update-ref` commands in the sequencer were removed, which has been corrected. Also contains various documentation updates and code clean-ups. @ text @d1 1 a1 1 # $NetBSD: Makefile.version,v 1.111 2022/10/19 07:54:52 adam Exp $ d7 1 a7 1 GIT_VERSION= 2.38.2 @ 1.111 log @git: updated to 2.38.1 Git v2.38.1 Release Notes ========================= This release merges the security fix that appears in v2.30.6; see the release notes for that version for details. @ text @d1 1 a1 1 # $NetBSD: Makefile.version,v 1.110 2022/10/07 10:10:05 adam Exp $ d7 1 a7 1 GIT_VERSION= 2.38.1 @ 1.110 log @git: updated to 2.38.0 Git v2.38 Release Notes ======================= UI, Workflows & Features * "git remote show [-n] frotz" now pays attention to negative pathspec. * "git push" sometimes performs poorly when reachability bitmaps are used, even in a repository where other operations are helped by bitmaps. The push.useBitmaps configuration variable is introduced to allow disabling use of reachability bitmaps only for "git push". * "git grep -m" is a way to limit the hits shown per file. * "git merge-tree" learned a new mode where it takes two commits and computes a tree that would result in the merge commit, if the histories leading to these two commits were to be merged. * "git mv A B" in a sparsely populated working tree can be asked to move a path between directories that are "in cone" (i.e. expected to be materialized in the working tree) and "out of cone" (i.e. expected to be hidden). The handling of such cases has been improved. * Earlier, HTTP transport clients learned to tell the server side what locale they are in by sending Accept-Language HTTP header, but this was done only for some requests but not others. * Introduce a safe.barerepository configuration variable that allows users to forbid discovery of bare repositories. * Various messages that come from the pack-bitmap codepaths have been tweaked. * "git rebase -i" learns to update branches whose tip appear in the rebased range with "--update-refs" option. * "git ls-files" learns the "--format" option to tweak its output. * "git cat-file" learned an option to use the mailmap when showing commit and tag objects. * When "git merge" finds that it cannot perform a merge, it should restore the working tree to the state before the command was initiated, but in some corner cases it didn't. * Operating modes like "--batch" of "git cat-file" command learned to take NUL-terminated input, instead of one-item-per-line. * "git rm" has become more aware of the sparse-index feature. * "git rev-list --disk-usage" learned to take an optional value "human" to show the reported value in human-readable format, like "3.40MiB". * The "diagnose" feature to create a zip archive for diagnostic material has been lifted from "scalar" and made into a feature of "git bugreport". * The namespaces used by "log --decorate" from "refs/" hierarchy by default has been tightened. * "git rev-list --ancestry-path=C A..B" is a natural extension of "git rev-list A..B"; instead of choosing a subset of A..B to those that have ancestry relationship with A, it lets a subset with ancestry relationship with C. * "scalar" now enables built-in fsmonitor on enlisted repositories, when able. * The bash prompt (in contrib/) learned to optionally indicate when the index is unmerged. * "git clone" command learned the "--bundle-uri" option to coordinate with hosting sites the use of pre-prepared bundle files. * "git range-diff" learned to honor pathspec argument if given. * "git format-patch --from=" can be told to add an in-body "From:" line even for commits that are authored by the given with "--force-in-body-from" option. * The built-in fsmonitor refuses to work on a network mounted repositories; a configuration knob for users to override this has been introduced. * The "scalar" addition from Microsoft is now part of the core Git installation. Performance, Internal Implementation, Development Support etc. * Collection of what is referenced by objects in promisor packs have been optimized to inspect these objects in the in-pack order. * Introduce a helper to see if a branch is already being worked on (hence should not be newly checked out in a working tree), which performs much better than the existing find_shared_symref() to replace many uses of the latter. * Teach "git archive" to (optionally and then by default) avoid spawning an external "gzip" process when creating ".tar.gz" (and ".tgz") archives. * Allow large objects read from a packstream to be streamed into a loose object file straight, without having to keep it in-core as a whole. * Further preparation to turn git-submodule.sh into a builtin continues. * Apply Coccinelle rule to turn raw memmove() into MOVE_ARRAY() cpp macro, which would improve maintainability and readability. * Teach "make all" to build gitweb as well. * Tweak tests so that they still work when the "git init" template did not create .git/info directory. * Add Coccinelle rules to detect the pattern of initializing and then finalizing a structure without using it in between at all, which happens after code restructuring and the compilers fail to recognize as an unused variable. * The code to convert between GPG trust level strings and internal constants we use to represent them have been cleaned up. * Support for libnettle as SHA256 implementation has been added. * The way "git multi-pack" uses parse-options API has been improved. * A Coccinelle rule (in contrib/) to encourage use of COPY_ARRAY macro has been improved. * API tweak to make it easier to run fuzz testing on commit-graph parser. * Omit fsync-related trace2 entries when their values are all zero. * The codepath to write multi-pack index has been taught to release a large chunk of memory that holds an array of objects in the packs, as soon as it is done with the array, to reduce memory consumption. * Add a level of redirection to array allocation API in xdiff part, to make it easier to share with the libgit2 project. * "git fetch" client logs the partial clone filter used in the trace2 output. * The "bundle URI" design gets documented. * The common ancestor negotiation exchange during a "git fetch" session now leaves trace log. * Test portability improvements. (merge 4d1d843be7 mt/rot13-in-c later to maint). * The "subcommand" mode is introduced to parse-options API and update the command line parser of Git commands with subcommands. * The pack bitmap file gained a bitmap-lookup table to speed up locating the necessary bitmap for a given commit. * The assembly version of SHA-1 implementation for PPC has been removed. * The server side that responds to "git fetch" and "git clone" request has been optimized by allowing it to send objects in its object store without recomputing and validating the object names. * Annotate function parameters that are not used (but cannot be removed for structural reasons), to prepare us to later compile with -Wunused warning turned on. * Share the text used to explain configuration variables used by "git " in "git help " with the text from "git help config". * "git mv A B" in a sparsely populated working tree can be asked to move a path from a directory that is "in cone" to another directory that is "out of cone". Handling of such a case has been improved. * The chainlint script for our tests has been revamped. Fixes since v2.37 ----------------- * Rewrite of "git add -i" in C that appeared in Git 2.25 didn't correctly record a removed file to the index, which was fixed. * Certain diff options are currently ignored when combined-diff is shown; mark them as incompatible with the feature. * Adjust technical/bitmap-format to be formatted by AsciiDoc, and add some missing information to the documentation. * Fixes for tests when the source directory has unusual characters in its path, e.g. whitespaces, double-quotes, etc. * "git mktree --missing" lazily fetched objects that are missing from the local object store, which was totally unnecessary for the purpose of creating the tree object(s) from its input. * Give _() markings to fatal/warning/usage: labels that are shown in front of these messages. * References to commands-to-be-typed-literally in "git rebase" documentation mark-up have been corrected. * In a non-bare repository, the behavior of Git when the core.worktree configuration variable points at a directory that has a repository as its subdirectory, regressed in Git 2.27 days. * Recent update to vimdiff layout code has been made more robust against different end-user vim settings. * Plug various memory leaks, both in the main code and in test-tool commands. * Fixes a long-standing corner case bug around directory renames in the merge-ort strategy. * The resolve-undo information in the index was not protected against GC, which has been corrected. * A corner case bug where lazily fetching objects from a promisor remote resulted in infinite recursion has been corrected. * "git clone" from a repository with some ref whose HEAD is unborn did not set the HEAD in the resulting repository correctly, which has been corrected. * An earlier attempt to plug leaks placed a clean-up label to jump to at a bogus place, which as been corrected. * Variable quoting fix in the vimdiff driver of "git mergetool" * "git shortlog -n" relied on the underlying qsort() to be stable, which shouldn't have. Fixed. * A fix for a regression in test framework. * mkstemp() emulation on Windows has been improved. * Add missing documentation for "include" and "includeIf" features in "git config" file format, which incidentally teaches the command line completion to include them in its offerings. * Avoid "white/black-list" in documentation and code comments. * Workaround for a compiler warning against use of die() in osx-keychain (in contrib/). * Workaround for a false positive compiler warning. * "git p4" working on UTF-16 files on Windows did not implement CRLF-to-LF conversion correctly, which has been corrected. * "git p4" did not handle non-ASCII client name well, which has been corrected. * "rerere-train" script (in contrib/) used to honor commit.gpgSign while recreating the throw-away merges. * "git checkout" miscounted the paths it updated, which has been corrected. * Fix for a bug that makes write-tree to fail to write out a non-existent index as a tree, introduced in 2.37. * There was a bug in the codepath to upgrade generation information in commit-graph from v1 to v2 format, which has been corrected. * Gitweb had legacy URL shortener that is specific to the way projects hosted on kernel.org used to (but no longer) work, which has been removed. * Fix build procedure for Windows that uses CMake so that it can pick up the shell interpreter from local installation location. * Conditionally allow building Python interpreter on Windows * Fix to lstat() emulation on Windows. * Older gcc with -Wall complains about the universal zero initializer "struct s = { 0 };" idiom, which makes developers' lives inconvenient (as -Werror is enabled by DEVELOPER=YesPlease). The build procedure has been tweaked to help these compilers. * Plug memory leaks in the failure code path in the "merge-ort" merge strategy backend. * "git symbolic-ref symref non..sen..se" is now diagnosed as an error. * A follow-up fix to a fix for a regression in 2.36 around hooks. * Avoid repeatedly running getconf to ask libc version in the test suite, and instead just as it once per script. * Platform-specific code that determines if a directory is OK to use as a repository has been taught to report more details, especially on Windows. * "vimdiff3" regression fix. * "git fsck" reads mode from tree objects but canonicalizes the mode before passing it to the logic to check object sanity, which has hid broken tree objects from the checking logic. This has been corrected, but to help existing projects with broken tree objects that they cannot fix retroactively, the severity of anomalies this code detects has been demoted to "info" for now. * Fixes to sparse index compatibility work for "reset" and "checkout" commands. * An earlier optimization discarded a tree-object buffer that is still in use, which has been corrected. * Fix deadlocks between main Git process and subprocess spawned via the pipe_command() API, that can kill "git add -p" that was reimplemented in C recently. * The sequencer machinery translated messages left in the reflog by mistake, which has been corrected. * xcalloc(), imitating calloc(), takes "number of elements of the array", and "size of a single element", in this order. A call that does not follow this ordering has been corrected. * The preload-index codepath made copies of pathspec to give to multiple threads, which were left leaked. * Update the version of Ubuntu used for GitHub Actions CI from 18.04 to 22.04. * The auto-stashed local changes created by "git merge --autostash" was mixed into a conflicted state left in the working tree, which has been corrected. * Multi-pack index got corrupted when preferred pack changed from one pack to another in a certain way, which has been corrected. (merge 99e4d084ff tb/midx-with-changing-preferred-pack-fix later to maint). * The clean-up of temporary files created via mks_tempfile_dt() was racy and attempted to unlink() the leading directory when signals are involved, which has been corrected. (merge babe2e0559 rs/tempfile-cleanup-race-fix later to maint). * FreeBSD portability fix for "git maintenance" that spawns "crontab" to schedule tasks. (merge ee69e7884e bc/gc-crontab-fix later to maint). * Those who use diff-so-fancy as the diff-filter noticed a regression or two in the code that parses the diff output in the built-in version of "add -p", which has been corrected. (merge 0a101676e5 js/add-p-diff-parsing-fix later to maint). * Segfault fix-up to an earlier fix to the topic to teach "git reset" and "git checkout" work better in a sparse checkout. (merge 037f8ea6d9 vd/sparse-reset-checkout-fixes later to maint). * "git diff --no-index A B" managed its the pathnames of its two input files rather haphazardly, sometimes leaking them. The command line argument processing has been straightened out to clean it up. (merge 2b43dd0eb5 rs/diff-no-index-cleanup later to maint). * "git rev-list --verify-objects" ought to inspect the contents of objects and notice corrupted ones, but it didn't when the commit graph is in use, which has been corrected. (merge b27ccae34b jk/rev-list-verify-objects-fix later to maint). * More fixes to "add -p" (merge 64ec8efb83 js/builtin-add-p-portability-fix later to maint). * The parser in the script interface to parse-options in "git rev-parse" has been updated to diagnose a bogus input correctly. (merge f20b9c36d0 ow/rev-parse-parseopt-fix later to maint). * The code that manages list-object-filter structure, used in partial clones, leaked the instances, which has been plugged. (merge 66eede4a37 jk/plug-list-object-filter-leaks later to maint). * Fix another UI regression in the reimplemented "add -p". (merge f6f0ee247f rs/add-p-worktree-mode-prompt-fix later to maint). * "git fetch" over protocol v2 sent an incorrect ref prefix request to the server and made "git pull" with configured fetch refspec that does not cover the remote branch to merge with fail, which has been corrected. (merge 49ca2fba39 jk/proto-v2-ref-prefix-fix later to maint). * A result from opendir() was leaking in the commit-graph expiration codepath, which has been plugged. (merge 12f1ae5324 ml/commit-graph-expire-dir-leak-fix later to maint). * Just like we have coding guidelines, we now have guidelines for reviewers. (merge e01b851923 vd/doc-reviewing-guidelines later to maint). * Other code cleanup, docfix, build fix, etc. (merge 77b9e85c0f vd/fix-perf-tests later to maint). (merge 0682bc43f5 jk/test-crontab-fixes later to maint). (merge b46dd1726c cc/doc-trailer-whitespace-rules later to maint). @ text @d1 1 a1 1 # $NetBSD: Makefile.version,v 1.109 2022/09/01 07:47:28 adam Exp $ d7 1 a7 1 GIT_VERSION= 2.38.0 @ 1.109 log @git: updated to 2.37.3 Git 2.37.3 Release Notes ======================== This primarily is to backport various fixes accumulated on the 'master' front since 2.37.2. Fixes since v2.37.2 ------------------- * The build procedure for Windows that uses CMake has been updated to pick up the shell interpreter from local installation location. * Conditionally allow building Python interpreter on Windows * Fix to lstat() emulation on Windows. * Older gcc with -Wall complains about the universal zero initializer "struct s = { 0 };" idiom, which makes developers' lives inconvenient (as -Werror is enabled by DEVELOPER=YesPlease). The build procedure has been tweaked to help these compilers. * Plug memory leaks in the failure code path in the "merge-ort" merge strategy backend. * Avoid repeatedly running getconf to ask libc version in the test suite, and instead just as it once per script. * Platform-specific code that determines if a directory is OK to use as a repository has been taught to report more details, especially on Windows. * "vimdiff3" regression has been corrected. * "git fsck" reads mode from tree objects but canonicalizes the mode before passing it to the logic to check object sanity, which has hid broken tree objects from the checking logic. This has been corrected, but to help exiting projects with broken tree objects that they cannot fix retroactively, the severity of anomalies this code detects has been demoted to "info" for now. * Fixes to sparse index compatibility work for "reset" and "checkout" commands. * Documentation for "git add --renormalize" has been improved. Also contains other minor documentation updates and code clean-ups. @ text @d1 1 a1 1 # $NetBSD: Makefile.version,v 1.108 2022/08/12 08:06:22 adam Exp $ d7 1 a7 1 GIT_VERSION= 2.37.3 @ 1.109.2.1 log @Pullup ticket #6692 - requested by taca devel/git: security fix via patch -- update to 2.37.4 --- This release merges the security fix that appears in v2.30.6; see the release notes for that version for details. @ text @d1 1 a1 1 # $NetBSD$ d7 1 a7 1 GIT_VERSION= 2.37.4 @ 1.108 log @git: updated to 2.37.2 Git 2.37.2 Release Notes ======================== This primarily is to backport various fixes accumulated on the 'master' front since 2.37.1. Fixes since v2.37.1 ------------------- * "git shortlog -n" relied on the underlying qsort() to be stable, which shouldn't have. Fixed. * Variable quoting fix in the vimdiff driver of "git mergetool". * An earlier attempt to plug leaks placed a clean-up label to jump to at a bogus place, which as been corrected. * Fixes a long-standing corner case bug around directory renames in the merge-ort strategy. * Recent update to vimdiff layout code has been made more robust against different end-user vim settings. * In a non-bare repository, the behavior of Git when the core.worktree configuration variable points at a directory that has a repository as its subdirectory, regressed in Git 2.27 days. * References to commands-to-be-typed-literally in "git rebase" documentation mark-up have been corrected. * Give _() markings to fatal/warning/usage: labels that are shown in front of these messages. * "git mktree --missing" lazily fetched objects that are missing from the local object store, which was totally unnecessary for the purpose of creating the tree object(s) from its input. * Fixes for tests when the source directory has unusual characters in its path, e.g. whitespaces, double-quotes, etc. * Adjust technical/bitmap-format to be formatted by AsciiDoc, and add some missing information to the documentation. * Certain diff options are currently ignored when combined-diff is shown; mark them as incompatible with the feature. * "git clone" from a repository with some ref whose HEAD is unborn did not set the HEAD in the resulting repository correctly, which has been corrected. * mkstemp() emulation on Windows has been improved. * Add missing documentation for "include" and "includeIf" features in "git config" file format, which incidentally teaches the command line completion to include them in its offerings. * Avoid "white/black-list" in documentation and code comments. * Workaround for a compiler warning against use of die() in osx-keychain (in contrib/). * Workaround for a false positive compiler warning. * The resolve-undo information in the index was not protected against GC, which has been corrected. * A corner case bug where lazily fetching objects from a promisor remote resulted in infinite recursion has been corrected. * "git p4" working on UTF-16 files on Windows did not implement CRLF-to-LF conversion correctly, which has been corrected. * "git p4" did not handle non-ASCII client name well, which has been corrected. * "rerere-train" script (in contrib/) used to honor commit.gpgSign while recreating the throw-away merges. * "git checkout" miscounted the paths it updated, which has been corrected. * Fix for a bug that makes write-tree to fail to write out a non-existent index as a tree, introduced in 2.37. * There was a bug in the codepath to upgrade generation information in commit-graph from v1 to v2 format, which has been corrected. Also contains minor documentation updates and code clean-ups. @ text @d1 1 a1 1 # $NetBSD: Makefile.version,v 1.107 2022/07/14 10:55:36 adam Exp $ d7 1 a7 1 GIT_VERSION= 2.37.2 @ 1.107 log @git: updated to 2.37.1 Git 2.37.1 Release Notes ======================== This release merges up the fixes that appear in v2.30.5, v2.31.4, v2.32.3, v2.33.4, v2.34.4, v2.35.4, and v2.36.2 to address the security issue CVE-2022-29187; see the release notes for these versions for details. Fixes since Git 2.37 -------------------- * Rewrite of "git add -i" in C that appeared in Git 2.25 didn't correctly record a removed file to the index, which is an old regression but has become widely known because the C version has become the default in the latest release. * Fix for CVS-2022-29187. @ text @d1 1 a1 1 # $NetBSD: Makefile.version,v 1.106 2022/07/06 11:53:59 adam Exp $ d7 1 a7 1 GIT_VERSION= 2.37.1 @ 1.106 log @git: updated to 2.37.0 Git v2.37 Release Notes ======================= UI, Workflows & Features * "vimdiff[123]" mergetool drivers have been reimplemented with a more generic layout mechanism. * "git -v" and "git -h" are now understood as "git --version" and "git --help". * The temporary files fed to external diff command are now generated inside a new temporary directory under the same basename. * "git log --since=X" will stop traversal upon seeing a commit that is older than X, but there may be commits behind it that is younger than X when the commit was created with a faulty clock. A new option is added to keep digging without stopping, and instead filter out commits with timestamp older than X. * "git -c branch.autosetupmerge=simple branch $A $B" will set the $B as $A's upstream only when $A and $B shares the same name, and "git -c push.default=simple" on branch $A would push to update the branch $A at the remote $B came from. Also more places use the sole remote, if exists, before defaulting to 'origin'. * A new doc has been added that lists tips for tools to work with Git's codebase. * "git remote -v" now shows the list-objects-filter used during fetching from the remote, if available. * With the new http.curloptResolve configuration, the CURLOPT_RESOLVE mechanism that allows cURL based applications to use pre-resolved IP addresses for the requests is exposed to the scripts. * "git add -i" was rewritten in C some time ago and has been in testing; the reimplementation is now exposed to general public by default. * Deprecate non-cone mode of the sparse-checkout feature. * Introduce a filesystem-dependent mechanism to optimize the way the bits for many loose object files are ensured to hit the disk platter. * The "do not remove the directory the user started Git in" logic, when Git cannot tell where that directory is, is disabled. Earlier we refused to run in such a case. * A mechanism to pack unreachable objects into a "cruft pack", instead of ejecting them into loose form to be reclaimed later, has been introduced. * Update the doctype written in gitweb output to xhtml5. * The "transfer.credentialsInURL" configuration variable controls what happens when a URL with embedded login credential is used on either "fetch" or "push". Credentials are currently only detected in `remote..url` config, not `remote..pushurl`. * "git revert" learns "--reference" option to use more human-readable reference to the commit it reverts in the message template it prepares for the user. * Various error messages that talk about the removal of "--preserve-merges" in "rebase" have been strengthened, and "rebase --abort" learned to get out of a state that was left by an earlier use of the option. Performance, Internal Implementation, Development Support etc. * The performance of the "untracked cache" feature has been improved when "--untracked-files=" and "status.showUntrackedFiles" are combined. * "git stash" works better with sparse index entries. * "git show :" learned to work better with the sparse-index feature. * Introduce and apply coccinelle rule to discourage an explicit comparison between a pointer and NULL, and applies the clean-up to the maintenance track. * Preliminary code refactoring around transport and bundle code. * "sparse-checkout" learns to work better with the sparse-index feature. * A workflow change for translators are being proposed. git.pot is no longer version controlled and it is local responsibility of translators to generate it. * Plug the memory leaks from the trickiest API of all, the revision walker. * Rename .env_array member to .env in the child_process structure. * The fsmonitor--daemon handles even more corner cases when watching filesystem events. * A new bug() and BUG_if_bug() API is introduced to make it easier to uniformly log "detect multiple bugs and abort in the end" pattern. Fixes since v2.36 ----------------- * "git submodule update" without pathspec should silently skip an uninitialized submodule, but it started to become noisy by mistake. (merge 4f1ccef87c gc/submodule-update-part2 later to maint). * "diff-tree --stdin" has been broken for about a year, but 2.36 release broke it even worse by breaking running the command with , which in turn broke "gitk" and got noticed. This has been corrected by aligning its behaviour to that of "log". (merge f8781bfda3 jc/diff-tree-stdin-fix later to maint). * Regression fix for 2.36 where "git name-rev" started to sometimes reference strings after they are freed. (merge 45a14f578e rs/name-rev-fix-free-after-use later to maint). * "git show ... -- " lost the pathspec when showing the second and subsequent commits, which has been corrected. (merge 5cdb38458e jc/show-pathspec-fix later to maint). * "git fast-export -- " lost the pathspec when showing the second and subsequent commits, which has been corrected. (merge d1c25272f5 rs/fast-export-pathspec-fix later to maint). * "git format-patch -- " lost the pathspec when showing the second and subsequent commits, which has been corrected. (merge 91f8f7e46f rs/format-patch-pathspec-fix later to maint). * "git clone --origin X" leaked piece of memory that held value read from the clone.defaultRemoteName configuration variable, which has been plugged. (merge 6dfadc8981 jc/clone-remote-name-leak-fix later to maint). * Get rid of a bogus and over-eager coccinelle rule. (merge 08bdd3a185 jc/cocci-xstrdup-or-null-fix later to maint). * The path taken by "git multi-pack-index" command from the end user was compared with path internally prepared by the tool without first normalizing, which lead to duplicated paths not being noticed, which has been corrected. (merge 11f9e8de3d ds/midx-normalize-pathname-before-comparison later to maint). * Correct choices of C compilers used in various CI jobs. (merge 3506cae04f ab/cc-package-fixes later to maint). * Various cleanups to "git p4". (merge 4ff0108d9e jh/p4-various-fixups later to maint). * The progress meter of "git blame" was showing incorrect numbers when processing only parts of the file. (merge e5f5d7d42e ea/progress-partial-blame later to maint). * "git rebase --keep-base " computed the commit to rebase onto incorrectly, which has been corrected. (merge 9e5ebe9668 ah/rebase-keep-base-fix later to maint). * Fix a leak of FILE * in an error codepath. (merge c0befa0c03 kt/commit-graph-plug-fp-leak-on-error later to maint). * Avoid problems from interaction between malloc_check and address sanitizer. (merge 067109a5e7 pw/test-malloc-with-sanitize-address later to maint). * The commit summary shown after making a commit is matched to what is given in "git status" not to use the break-rewrite heuristics. (merge 84792322ed rs/commit-summary-wo-break-rewrite later to maint). * Update a few end-user facing messages around EOL conversion. (merge c970d30c2c ah/convert-warning-message later to maint). * Trace2 documentation updates. (merge a6c80c313c js/trace2-doc-fixes later to maint). * Build procedure fixup. (merge 1fbfd96f50 mg/detect-compiler-in-c-locale later to maint). * "git pull" without "--recurse-submodules=" made submodule.recurse take precedence over fetch.recurseSubmodules by mistake, which has been corrected. (merge 5819417365 gc/pull-recurse-submodules later to maint). * "git bisect" was too silent before it is ready to start computing the actual bisection, which has been corrected. (merge f11046e6de cd/bisect-messages-from-pre-flight-states later to maint). * macOS CI jobs have been occasionally flaky due to tentative version skew between perforce and the homebrew packager. Instead of failing the whole CI job, just let it skip the p4 tests when this happens. (merge f15e00b463 cb/ci-make-p4-optional later to maint). * A bit of test framework fixes with a few fixes to issues found by valgrind. (merge 7c898554d7 ab/valgrind-fixes later to maint). * "git archive --add-file=" picked up the raw permission bits from the path and propagated to zip output in some cases, without normalization, which has been corrected (tar output did not have this issue). (merge 6a61661967 jc/archive-add-file-normalize-mode later to maint). * "make coverage-report" without first running "make coverage" did not produce any meaningful result, which has been corrected. (merge 96ddfecc5b ep/coverage-report-wants-test-to-have-run later to maint). * The "--current" option of "git show-branch" should have been made incompatible with the "--reflog" mode, but this was not enforced, which has been corrected. (merge 41c64ae0e7 jc/show-branch-g-current later to maint). * "git fetch" unnecessarily failed when an unexpected optional section appeared in the output, which has been corrected. (merge 7709acf7be jt/fetch-peek-optional-section later to maint). * The way "git fetch" without "--update-head-ok" ensures that HEAD in no worktree points at any ref being updated was too wasteful, which has been optimized a bit. (merge f7400da800 os/fetch-check-not-current-branch later to maint). * "git fetch --recurse-submodules" from multiple remotes (either from a remote group, or "--all") used to make one extra "git fetch" in the submodules, which has been corrected. (merge 0353c68818 jc/avoid-redundant-submodule-fetch later to maint). * With a recent update to refuse access to repositories of other people by default, "sudo make install" and "sudo git describe" stopped working, which has been corrected. (merge 6b11e3d52e cb/path-owner-check-with-sudo-plus later to maint). * The tests that ensured merges stop when interfering local changes are present did not make sure that local changes are preserved; now they do. (merge 4b317450ce jc/t6424-failing-merge-preserve-local-changes later to maint). * Some real problems noticed by gcc 12 have been fixed, while false positives have been worked around. * Update the version of FreeBSD image used in Cirrus CI. (merge c58bebd4c6 pb/use-freebsd-12.3-in-cirrus-ci later to maint). * The multi-pack-index code did not protect the packfile it is going to depend on from getting removed while in use, which has been corrected. (merge 4090511e40 tb/midx-race-in-pack-objects later to maint). * Teach "git repack --geometric" work better with "--keep-pack" and avoid corrupting the repository when packsize limit is used. (merge 66731ff921 tb/geom-repack-with-keep-and-max later to maint). * The documentation on the interaction between "--add-file" and "--prefix" options of "git archive" has been improved. (merge a75910602a rs/document-archive-prefix later to maint). * A git subcommand like "git add -p" spawns a separate git process while relaying its command line arguments. A pathspec with only negative elements was mistakenly passed with an empty string, which has been corrected. (merge b02fdbc80a jc/all-negative-pathspec later to maint). * With a more targeted workaround in http.c in another topic, we may be able to lift this blanket "GCC12 dangling-pointer warning is broken and unsalvageable" workaround. (merge 419141e495 cb/buggy-gcc-12-workaround later to maint). * A misconfigured 'branch..remote' led to a bug in configuration parsing. (merge f1dfbd9ee0 gc/zero-length-branch-config-fix later to maint). * "git -c diff.submodule=log range-diff" did not show anything for submodules that changed in the ranges being compared, and "git -c diff.submodule=diff range-diff" did not work correctly. Fix this by including the "--submodule=short" output unconditionally to be compared. * In Git 2.36 we revamped the way how hooks are invoked. One change that is end-user visible is that the output of a hook is no longer directly connected to the standard output of "git" that spawns the hook, which was noticed post release. This is getting corrected. (merge a082345372 ab/hooks-regression-fix later to maint). * Updating the graft information invalidates the list of parents of in-core commit objects that used to be in the graft file. * "git show-ref --heads" (and "--tags") still iterated over all the refs only to discard refs outside the specified area, which has been corrected. (merge c0c9d35e27 tb/show-ref-optim later to maint). * Remove redundant copying (with index v3 and older) or possible over-reading beyond end of mmapped memory (with index v4) has been corrected. (merge 6d858341d2 zh/read-cache-copy-name-entry-fix later to maint). * Sample watchman interface hook sometimes failed to produce correctly formatted JSON message, which has been corrected. (merge 134047b500 sn/fsmonitor-missing-clock later to maint). * Use-after-free (with another forget-to-free) fix. (merge 323822c72b ab/remote-free-fix later to maint). * Remove a coccinelle rule that is no longer relevant. (merge b1299de4a1 jc/cocci-cleanup later to maint). * Other code cleanup, docfix, build fix, etc. (merge e6b2582da3 cm/reftable-0-length-memset later to maint). (merge 0b75e5bf22 ab/misc-cleanup later to maint). (merge 52e1ab8a76 ea/rebase-code-simplify later to maint). (merge 756d15923b sg/safe-directory-tests-and-docs later to maint). (merge d097a23bfa ds/do-not-call-bug-on-bad-refs later to maint). (merge c36c27e75c rs/t7812-pcre2-ws-bug-test later to maint). (merge 1da312742d gf/unused-includes later to maint). (merge 465b30a92d pb/submodule-recurse-mode-enum later to maint). (merge 82b28c4ed8 km/t3501-use-test-helpers later to maint). (merge 72315e431b sa/t1011-use-helpers later to maint). (merge 95b3002201 cg/vscode-with-gdb later to maint). (merge fbe5f6b804 tk/p4-utf8-bom later to maint). (merge 17f273ffba tk/p4-with-explicity-sync later to maint). (merge 944db25c60 kf/p4-multiple-remotes later to maint). (merge b014cee8de jc/update-ozlabs-url later to maint). (merge 4ec5008062 pb/ggg-in-mfc-doc later to maint). (merge af845a604d tb/receive-pack-code-cleanup later to maint). (merge 2acf4cf001 js/ci-gcc-12-fixes later to maint). (merge 05e280c0a6 jc/http-clear-finished-pointer later to maint). (merge 8c49d704ef fh/transport-push-leakfix later to maint). (merge 1d232d38bd tl/ls-tree-oid-only later to maint). (merge db7961e6a6 gc/document-config-worktree-scope later to maint). (merge ce18a30bb7 fs/ssh-default-key-command-doc later to maint). @ text @d1 1 a1 1 # $NetBSD: Makefile.version,v 1.105 2022/05/09 12:00:15 adam Exp $ d7 1 a7 1 GIT_VERSION= 2.37.0 @ 1.105 log @git: updated to 2.36.1 Git v2.36.1 Release Notes ========================= Fixes since v2.36 ----------------- * "git submodule update" without pathspec should silently skip an uninitialized submodule, but it started to become noisy by mistake. * "diff-tree --stdin" has been broken for about a year, but 2.36 release broke it even worse by breaking running the command with , which in turn broke "gitk" and got noticed. This has been corrected by aligning its behaviour to that of "log". * Regression fix for 2.36 where "git name-rev" started to sometimes reference strings after they are freed. * "git show ... -- " lost the pathspec when showing the second and subsequent commits, which has been corrected. * "git fast-export -- " lost the pathspec when showing the second and subsequent commits, which has been corrected. * "git format-patch -- " lost the pathspec when showing the second and subsequent commits, which has been corrected. * Get rid of a bogus and over-eager coccinelle rule. * Correct choices of C compilers used in various CI jobs. Also contains minor documentation updates and code clean-ups. @ text @d1 1 a1 1 # $NetBSD: Makefile.version,v 1.104 2022/05/03 01:26:55 gutteridge Exp $ d7 1 a7 1 GIT_VERSION= 2.36.1 @ 1.105.2.1 log @Pullup ticket #6657 - requested by taca devel/git: security update devel/git-base: security update devel/git-docs: security update www/gitweb: security update Revisions pulled up: - devel/git-base/Makefile 1.97 - devel/git-base/distinfo 1.120-1.121 - devel/git-docs/Makefile 1.21 - devel/git/Makefile.version 1.106-1.107 - www/gitweb/Makefile 1.45 ------------------------------------------------------------------- Module Name: pkgsrc Committed By: adam Date: Wed Jul 6 11:54:00 UTC 2022 Modified Files: pkgsrc/devel/git: Makefile.version pkgsrc/devel/git-base: Makefile distinfo pkgsrc/devel/git-docs: Makefile pkgsrc/www/gitweb: Makefile Log Message: git: updated to 2.37.0 Git v2.37 Release Notes =========== UI, Workflows & Features * "vimdiff[123]" mergetool drivers have been reimplemented with a more generic layout mechanism. * "git -v" and "git -h" are now understood as "git --version" and "git --help". * The temporary files fed to external diff command are now generated inside a new temporary directory under the same basename. * "git log --since=X" will stop traversal upon seeing a commit that is older than X, but there may be commits behind it that is younger than X when the commit was created with a faulty clock. A new option is added to keep digging without stopping, and instead filter out commits with timestamp older than X. * "git -c branch.autosetupmerge=simple branch $A $B" will set the $B as $A's upstream only when $A and $B shares the same name, and "git -c push.default=simple" on branch $A would push to update the branch $A at the remote $B came from. Also more places use the sole remote, if exists, before defaulting to 'origin'. * A new doc has been added that lists tips for tools to work with Git's codebase. * "git remote -v" now shows the list-objects-filter used during fetching from the remote, if available. * With the new http.curloptResolve configuration, the CURLOPT_RESOLVE mechanism that allows cURL based applications to use pre-resolved IP addresses for the requests is exposed to the scripts. * "git add -i" was rewritten in C some time ago and has been in testing; the reimplementation is now exposed to general public by default. * Deprecate non-cone mode of the sparse-checkout feature. * Introduce a filesystem-dependent mechanism to optimize the way the bits for many loose object files are ensured to hit the disk platter. * The "do not remove the directory the user started Git in" logic, when Git cannot tell where that directory is, is disabled. Earlier we refused to run in such a case. * A mechanism to pack unreachable objects into a "cruft pack", instead of ejecting them into loose form to be reclaimed later, has been introduced. * Update the doctype written in gitweb output to xhtml5. * The "transfer.credentialsInURL" configuration variable controls what happens when a URL with embedded login credential is used on either "fetch" or "push". Credentials are currently only detected in `remote..url` config, not `remote..pushurl`. * "git revert" learns "--reference" option to use more human-readable reference to the commit it reverts in the message template it prepares for the user. * Various error messages that talk about the removal of "--preserve-merges" in "rebase" have been strengthened, and "rebase --abort" learned to get out of a state that was left by an earlier use of the option. Performance, Internal Implementation, Development Support etc. * The performance of the "untracked cache" feature has been improved when "--untracked-files=" and "status.showUntrackedFiles" are combined. * "git stash" works better with sparse index entries. * "git show :" learned to work better with the sparse-index feature. * Introduce and apply coccinelle rule to discourage an explicit comparison between a pointer and NULL, and applies the clean-up to the maintenance track. * Preliminary code refactoring around transport and bundle code. * "sparse-checkout" learns to work better with the sparse-index feature. * A workflow change for translators are being proposed. git.pot is no longer version controlled and it is local responsibility of translators to generate it. * Plug the memory leaks from the trickiest API of all, the revision walker. * Rename .env_array member to .env in the child_process structure. * The fsmonitor--daemon handles even more corner cases when watching filesystem events. * A new bug() and BUG_if_bug() API is introduced to make it easier to uniformly log "detect multiple bugs and abort in the end" pattern. Fixes since v2.36 ----------------- * "git submodule update" without pathspec should silently skip an uninitialized submodule, but it started to become noisy by mistake. (merge 4f1ccef87c gc/submodule-update-part2 later to maint). * "diff-tree --stdin" has been broken for about a year, but 2.36 release broke it even worse by breaking running the command with , which in turn broke "gitk" and got noticed. This has been corrected by aligning its behaviour to that of "log". (merge f8781bfda3 jc/diff-tree-stdin-fix later to maint). * Regression fix for 2.36 where "git name-rev" started to sometimes reference strings after they are freed. (merge 45a14f578e rs/name-rev-fix-free-after-use later to maint). * "git show ... -- " lost the pathspec when showing the second and subsequent commits, which has been corrected. (merge 5cdb38458e jc/show-pathspec-fix later to maint). * "git fast-export -- " lost the pathspec when showing the second and subsequent commits, which has been corrected. (merge d1c25272f5 rs/fast-export-pathspec-fix later to maint). * "git format-patch -- " lost the pathspec when showing the second and subsequent commits, which has been corrected. (merge 91f8f7e46f rs/format-patch-pathspec-fix later to maint). * "git clone --origin X" leaked piece of memory that held value read from the clone.defaultRemoteName configuration variable, which has been plugged. (merge 6dfadc8981 jc/clone-remote-name-leak-fix later to maint). * Get rid of a bogus and over-eager coccinelle rule. (merge 08bdd3a185 jc/cocci-xstrdup-or-null-fix later to maint). * The path taken by "git multi-pack-index" command from the end user was compared with path internally prepared by the tool without first normalizing, which lead to duplicated paths not being noticed, which has been corrected. (merge 11f9e8de3d ds/midx-normalize-pathname-before-comparison later to maint). * Correct choices of C compilers used in various CI jobs. (merge 3506cae04f ab/cc-package-fixes later to maint). * Various cleanups to "git p4". (merge 4ff0108d9e jh/p4-various-fixups later to maint). * The progress meter of "git blame" was showing incorrect numbers when processing only parts of the file. (merge e5f5d7d42e ea/progress-partial-blame later to maint). * "git rebase --keep-base " computed the commit to rebase onto incorrectly, which has been corrected. (merge 9e5ebe9668 ah/rebase-keep-base-fix later to maint). * Fix a leak of FILE * in an error codepath. (merge c0befa0c03 kt/commit-graph-plug-fp-leak-on-error later to maint). * Avoid problems from interaction between malloc_check and address sanitizer. (merge 067109a5e7 pw/test-malloc-with-sanitize-address later to maint). * The commit summary shown after making a commit is matched to what is given in "git status" not to use the break-rewrite heuristics. (merge 84792322ed rs/commit-summary-wo-break-rewrite later to maint). * Update a few end-user facing messages around EOL conversion. (merge c970d30c2c ah/convert-warning-message later to maint). * Trace2 documentation updates. (merge a6c80c313c js/trace2-doc-fixes later to maint). * Build procedure fixup. (merge 1fbfd96f50 mg/detect-compiler-in-c-locale later to maint). * "git pull" without "--recurse-submodules=" made submodule.recurse take precedence over fetch.recurseSubmodules by mistake, which has been corrected. (merge 5819417365 gc/pull-recurse-submodules later to maint). * "git bisect" was too silent before it is ready to start computing the actual bisection, which has been corrected. (merge f11046e6de cd/bisect-messages-from-pre-flight-states later to maint). * macOS CI jobs have been occasionally flaky due to tentative version skew between perforce and the homebrew packager. Instead of failing the whole CI job, just let it skip the p4 tests when this happens. (merge f15e00b463 cb/ci-make-p4-optional later to maint). * A bit of test framework fixes with a few fixes to issues found by valgrind. (merge 7c898554d7 ab/valgrind-fixes later to maint). * "git archive --add-file=" picked up the raw permission bits from the path and propagated to zip output in some cases, without normalization, which has been corrected (tar output did not have this issue). (merge 6a61661967 jc/archive-add-file-normalize-mode later to maint). * "make coverage-report" without first running "make coverage" did not produce any meaningful result, which has been corrected. (merge 96ddfecc5b ep/coverage-report-wants-test-to-have-run later to maint). * The "--current" option of "git show-branch" should have been made incompatible with the "--reflog" mode, but this was not enforced, which has been corrected. (merge 41c64ae0e7 jc/show-branch-g-current later to maint). * "git fetch" unnecessarily failed when an unexpected optional section appeared in the output, which has been corrected. (merge 7709acf7be jt/fetch-peek-optional-section later to maint). * The way "git fetch" without "--update-head-ok" ensures that HEAD in no worktree points at any ref being updated was too wasteful, which has been optimized a bit. (merge f7400da800 os/fetch-check-not-current-branch later to maint). * "git fetch --recurse-submodules" from multiple remotes (either from a remote group, or "--all") used to make one extra "git fetch" in the submodules, which has been corrected. (merge 0353c68818 jc/avoid-redundant-submodule-fetch later to maint). * With a recent update to refuse access to repositories of other people by default, "sudo make install" and "sudo git describe" stopped working, which has been corrected. (merge 6b11e3d52e cb/path-owner-check-with-sudo-plus later to maint). * The tests that ensured merges stop when interfering local changes are present did not make sure that local changes are preserved; now they do. (merge 4b317450ce jc/t6424-failing-merge-preserve-local-changes later to maint). * Some real problems noticed by gcc 12 have been fixed, while false positives have been worked around. * Update the version of FreeBSD image used in Cirrus CI. (merge c58bebd4c6 pb/use-freebsd-12.3-in-cirrus-ci later to maint). * The multi-pack-index code did not protect the packfile it is going to depend on from getting removed while in use, which has been corrected. (merge 4090511e40 tb/midx-race-in-pack-objects later to maint). * Teach "git repack --geometric" work better with "--keep-pack" and avoid corrupting the repository when packsize limit is used. (merge 66731ff921 tb/geom-repack-with-keep-and-max later to maint). * The documentation on the interaction between "--add-file" and "--prefix" options of "git archive" has been improved. (merge a75910602a rs/document-archive-prefix later to maint). * A git subcommand like "git add -p" spawns a separate git process while relaying its command line arguments. A pathspec with only negative elements was mistakenly passed with an empty string, which has been corrected. (merge b02fdbc80a jc/all-negative-pathspec later to maint). * With a more targeted workaround in http.c in another topic, we may be able to lift this blanket "GCC12 dangling-pointer warning is broken and unsalvageable" workaround. (merge 419141e495 cb/buggy-gcc-12-workaround later to maint). * A misconfigured 'branch..remote' led to a bug in configuration parsing. (merge f1dfbd9ee0 gc/zero-length-branch-config-fix later to maint). * "git -c diff.submodule=log range-diff" did not show anything for submodules that changed in the ranges being compared, and "git -c diff.submodule=diff range-diff" did not work correctly. Fix this by including the "--submodule=short" output unconditionally to be compared. * In Git 2.36 we revamped the way how hooks are invoked. One change that is end-user visible is that the output of a hook is no longer directly connected to the standard output of "git" that spawns the hook, which was noticed post release. This is getting corrected. (merge a082345372 ab/hooks-regression-fix later to maint). * Updating the graft information invalidates the list of parents of in-core commit objects that used to be in the graft file. * "git show-ref --heads" (and "--tags") still iterated over all the refs only to discard refs outside the specified area, which has been corrected. (merge c0c9d35e27 tb/show-ref-optim later to maint). * Remove redundant copying (with index v3 and older) or possible over-reading beyond end of mmapped memory (with index v4) has been corrected. (merge 6d858341d2 zh/read-cache-copy-name-entry-fix later to maint). * Sample watchman interface hook sometimes failed to produce correctly formatted JSON message, which has been corrected. (merge 134047b500 sn/fsmonitor-missing-clock later to maint). * Use-after-free (with another forget-to-free) fix. (merge 323822c72b ab/remote-free-fix later to maint). * Remove a coccinelle rule that is no longer relevant. (merge b1299de4a1 jc/cocci-cleanup later to maint). * Other code cleanup, docfix, build fix, etc. (merge e6b2582da3 cm/reftable-0-length-memset later to maint). (merge 0b75e5bf22 ab/misc-cleanup later to maint). (merge 52e1ab8a76 ea/rebase-code-simplify later to maint). (merge 756d15923b sg/safe-directory-tests-and-docs later to maint). (merge d097a23bfa ds/do-not-call-bug-on-bad-refs later to maint). (merge c36c27e75c rs/t7812-pcre2-ws-bug-test later to maint). (merge 1da312742d gf/unused-includes later to maint). (merge 465b30a92d pb/submodule-recurse-mode-enum later to maint). (merge 82b28c4ed8 km/t3501-use-test-helpers later to maint). (merge 72315e431b sa/t1011-use-helpers later to maint). (merge 95b3002201 cg/vscode-with-gdb later to maint). (merge fbe5f6b804 tk/p4-utf8-bom later to maint). (merge 17f273ffba tk/p4-with-explicity-sync later to maint). (merge 944db25c60 kf/p4-multiple-remotes later to maint). (merge b014cee8de jc/update-ozlabs-url later to maint). (merge 4ec5008062 pb/ggg-in-mfc-doc later to maint). (merge af845a604d tb/receive-pack-code-cleanup later to maint). (merge 2acf4cf001 js/ci-gcc-12-fixes later to maint). (merge 05e280c0a6 jc/http-clear-finished-pointer later to maint). (merge 8c49d704ef fh/transport-push-leakfix later to maint). (merge 1d232d38bd tl/ls-tree-oid-only later to maint). (merge db7961e6a6 gc/document-config-worktree-scope later to maint). (merge ce18a30bb7 fs/ssh-default-key-command-doc later to maint). To generate a diff of this commit: cvs rdiff -u -r1.105 -r1.106 pkgsrc/devel/git/Makefile.version cvs rdiff -u -r1.96 -r1.97 pkgsrc/devel/git-base/Makefile cvs rdiff -u -r1.119 -r1.120 pkgsrc/devel/git-base/distinfo cvs rdiff -u -r1.20 -r1.21 pkgsrc/devel/git-docs/Makefile cvs rdiff -u -r1.44 -r1.45 pkgsrc/www/gitweb/Makefile ------------------------------------------------------------------- Module Name: pkgsrc Committed By: adam Date: Thu Jul 14 10:55:37 UTC 2022 Modified Files: pkgsrc/devel/git: Makefile.version pkgsrc/devel/git-base: distinfo Log Message: git: updated to 2.37.1 Git 2.37.1 Release Notes ============ This release merges up the fixes that appear in v2.30.5, v2.31.4, v2.32.3, v2.33.4, v2.34.4, v2.35.4, and v2.36.2 to address the security issue CVE-2022-29187; see the release notes for these versions for details. Fixes since Git 2.37 -------------------- * Rewrite of "git add -i" in C that appeared in Git 2.25 didn't correctly record a removed file to the index, which is an old regression but has become widely known because the C version has become the default in the latest release. * Fix for CVS-2022-29187. To generate a diff of this commit: cvs rdiff -u -r1.106 -r1.107 pkgsrc/devel/git/Makefile.version cvs rdiff -u -r1.120 -r1.121 pkgsrc/devel/git-base/distinfo @ text @d1 1 a1 1 # $NetBSD: Makefile.version,v 1.105 2022/05/09 12:00:15 adam Exp $ d7 1 a7 1 GIT_VERSION= 2.37.1 @ 1.104 log @git: update to 2.36.0 Git 2.36 Release Notes ====================== Updates since Git 2.35 ---------------------- Backward compatibility warts * "git name-rev --stdin" has been deprecated and issues a warning when used; use "git name-rev --annotate-stdin" instead. * "git clone --filter=... --recurse-submodules" only makes the top-level a partial clone, while submodules are fully cloned. This behaviour is changed to pass the same filter down to the submodules. * With the fixes for CVE-2022-24765 that are common with versions of Git 2.30.4, 2.31.3, 2.32.2, 2.33.3, 2.34.3, and 2.35.3, Git has been taught not to recognise repositories owned by other users, in order to avoid getting affected by their config files and hooks. You can list the path to the safe/trusted repositories that may be owned by others on a multi-valued configuration variable `safe.directory` to override this behaviour, or use '*' to declare that you trust anything. Note to those who build from the source * Since Git 2.31, our source assumed that the compiler you use to build Git supports variadic macros, with an easy-to-use escape hatch to allow compilation without variadic macros with an request to report that you had to use the escape hatch to the list. Because we haven't heard from anybody who actually needed to use the escape hatch, it has been removed, making support of variadic macros a hard requirement. UI, Workflows & Features * Assorted updates to "git cat-file", especially "-h". * The command line completion (in contrib/) learns to complete arguments to give to "git sparse-checkout" command. * "git log --remerge-diff" shows the difference from mechanical merge result and the result that is actually recorded in a merge commit. * "git log" and friends learned an option --exclude-first-parent-only to propagate UNINTERESTING bit down only along the first-parent chain, just like --first-parent option shows commits that lack the UNINTERESTING bit only along the first-parent chain. * The command line completion script (in contrib/) learned to complete all Git subcommands, including the ones that are normally hidden, when GIT_COMPLETION_SHOW_ALL_COMMANDS is used. * "git branch" learned the "--recurse-submodules" option. * A user can forget to make a script file executable before giving it to "git bisect run". In such a case, all tests will exit with 126 or 127 error codes, even on revisions that are marked as good. Try to recognize this situation and stop iteration early. * When "index-pack" dies due to incoming data exceeding the maximum allowed input size, include the value of the limit in the error message. * The error message given by "git switch HEAD~4" has been clarified to suggest the "--detach" option that is required. * In sparse-checkouts, files mis-marked as missing from the working tree could lead to later problems. Such files were hard to discover, and harder to correct. Automatically detecting and correcting the marking of such files has been added to avoid these problems. * "git cat-file" learns "--batch-command" mode, which is a more flexible interface than the existing "--batch" or "--batch-check" modes, to allow different kinds of inquiries made. * The level of verbose output from the ort backend during inner merge has been aligned to that of the recursive backend. * "git remote rename A B", depending on the number of remote-tracking refs involved, takes long time renaming them. The command has been taught to show progress bar while making the user wait. * Bundle file format gets extended to allow a partial bundle, filtered by similar criteria you would give when making a partial/lazy clone. * A new built-in userdiff driver for kotlin has been added. * "git repack" learned a new configuration to disable triggering of age-old "update-server-info" command, which is rarely useful these days. * "git stash" does not allow subcommands it internally runs as its implementation detail, except for "git reset", to emit messages; now "git reset" part has also been squelched. * "git ls-tree" learns "--oid-only" option, similar to "--name-only", and more generalized "--format" option. * "git fetch --refetch" learned to fetch everything without telling the other side what we already have, which is useful when you cannot trust what you have in the local object store. * "git branch" gives hint when branch tracking cannot be established because fetch refspecs from multiple remote repositories overlap. * "git worktree list --porcelain" did not c-quote pathnames and lock reasons with unsafe bytes correctly, which is worked around by introducing NUL terminated output format with "-z". Performance, Internal Implementation, Development Support etc. * "git apply" (ab)used the util pointer of the string-list to keep track of how each symbolic link needs to be handled, which has been simplified by using strset. * Fix a hand-rolled alloca() imitation that may have violated alignment requirement of data being sorted in compatibility implementation of qsort_s() and stable qsort(). * Use the parse-options API in "git reflog" command. * The conditional inclusion mechanism of configuration files using "[includeIf ]" learns to base its decision on the URL of the remote repository the repository interacts with. (merge 399b198489 jt/conditional-config-on-remote-url later to maint). * "git name-rev --stdin" does not behave like usual "--stdin" at all. Start the process of renaming it to "--annotate-stdin". (merge a2585719b3 jc/name-rev-stdin later to maint). * "git update-index", "git checkout-index", and "git clean" are taught to work better with the sparse checkout feature. * Use an internal call to reset_head() helper function instead of spawning "git checkout" in "rebase", and update code paths that are involved in the change. * Messages "ort" merge backend prepares while dealing with conflicted paths were unnecessarily confusing since it did not differentiate inner merges and outer merges. * Small modernization of the rerere-train script (in contrib/). * Use designated initializers we started using in mid 2017 in more parts of the codebase that are relatively quiescent. * Improve failure case behaviour of xdiff library when memory allocation fails. * General clean-up in reftable implementation, including clarification of the API documentation, tightening the code to honor documented length limit, etc. * Remove the escape hatch we added when we introduced the weather balloon to use variadic macros unconditionally, to make it official that we now have a hard dependency on the feature. * Makefile refactoring with a bit of suffixes rule stripping to optimize the runtime overhead. * "git stash drop" is reimplemented as an internal call to reflog_delete() function, instead of invoking "git reflog delete" via run_command() API. * Count string_list items in size_t, not "unsigned int". * The single-key interactive operation used by "git add -p" has been made more robust. * Remove unneeded from gitweb output. * "git name-rev" learned to use the generation numbers when setting the lower bound of searching commits used to explain the revision, when available, instead of committer time. * Replace core.fsyncObjectFiles with two new configuration variables, core.fsync and core.fsyncMethod. * Updates to refs traditionally weren't fsync'ed, but we can configure using core.fsync variable to do so. * "git reflog" command now uses parse-options API to parse its command line options. Fixes since v2.35 ----------------- * "rebase" and "stash" in secondary worktrees are broken in Git 2.35.0, which has been corrected. * "git pull --rebase" ignored the rebase.autostash configuration variable when the remote history is a descendant of our history, which has been corrected. (merge 3013d98d7a pb/pull-rebase-autostash-fix later to maint). * "git update-index --refresh" has been taught to deal better with racy timestamps (just like "git status" already does). (merge 2ede073fd2 ms/update-index-racy later to maint). * Avoid tests that are run under GIT_TRACE2 set from failing unnecessarily. (merge 944d808e42 js/test-unset-trace2-parents later to maint). * The merge-ort misbehaved when merge.renameLimit configuration is set too low and failed to find all renames. (merge 9ae39fef7f en/merge-ort-restart-optim-fix later to maint). * We explain that revs come first before the pathspec among command line arguments, but did not spell out that dashed options come before other args, which has been corrected. (merge c11f95010c tl/doc-cli-options-first later to maint). * "git add -p" rewritten in C regressed hunk splitting in some cases, which has been corrected. (merge 7008ddc645 pw/add-p-hunk-split-fix later to maint). * "git fetch --negotiate-only" is an internal command used by "git push" to figure out which part of our history is missing from the other side. It should never recurse into submodules even when fetch.recursesubmodules configuration variable is set, nor it should trigger "gc". The code has been tightened up to ensure it only does common ancestry discovery and nothing else. (merge de4eaae63a gc/fetch-negotiate-only-early-return later to maint). * The code path that verifies signatures made with ssh were made to work better on a system with CRLF line endings. (merge caeef01ea7 fs/ssh-signing-crlf later to maint). * "git sparse-checkout init" failed to write into $GIT_DIR/info directory when the repository was created without one, which has been corrected to auto-create it. (merge 7f44842ac1 jt/sparse-checkout-leading-dir-fix later to maint). * Cloning from a repository that does not yet have any branches or tags but has other refs resulted in a "remote transport reported error", which has been corrected. (merge dccea605b6 jt/clone-not-quite-empty later to maint). * Mark in various places in the code that the sparse index and the split index features are mutually incompatible. (merge 451b66c533 js/sparse-vs-split-index later to maint). * Update the logic to compute alignment requirement for our mem-pool. (merge e38bcc66d8 jc/mem-pool-alignment later to maint). * Pick a better random number generator and use it when we prepare temporary filenames. (merge 47efda967c bc/csprng-mktemps later to maint). * Update the contributor-facing documents on proposed log messages. (merge cdba0295b0 jc/doc-log-messages later to maint). * When "git fetch --prune" failed to prune the refs it wanted to prune, the command issued error messages but exited with exit status 0, which has been corrected. (merge c9e04d905e tg/fetch-prune-exit-code-fix later to maint). * Problems identified by Coverity in the reftable code have been corrected. (merge 01033de49f hn/reftable-coverity-fixes later to maint). * A bug that made multi-pack bitmap and the object order out-of-sync, making the .midx data corrupt, has been fixed. (merge f8b60cf99b tb/midx-bitmap-corruption-fix later to maint). * The build procedure has been taught to notice older version of zlib and enable our replacement uncompress2() automatically. (merge 07564773c2 ab/auto-detect-zlib-compress2 later to maint). * Interaction between fetch.negotiationAlgorithm and feature.experimental configuration variables has been corrected. (merge 714edc620c en/fetch-negotiation-default-fix later to maint). * "git diff --diff-filter=aR" is now parsed correctly. (merge 75408ca949 js/diff-filter-negation-fix later to maint). * When "git subtree" wants to create a merge, it used "git merge" and let it be affected by end-user's "merge.ff" configuration, which has been corrected. (merge 9158a3564a tk/subtree-merge-not-ff-only later to maint). * Unlike "git apply", "git patch-id" did not handle patches with hunks that has only 1 line in either preimage or postimage, which has been corrected. (merge 757e75c81e jz/patch-id-hunk-header-parsing-fix later to maint). * "receive-pack" checks if it will do any ref updates (various conditions could reject a push) before received objects are taken out of the temporary directory used for quarantine purposes, so that a push that is known-to-fail will not leave crufts that a future "gc" needs to clean up. (merge 5407764069 cb/clear-quarantine-early-on-all-ref-update-errors later to maint). * When there is no object to write .bitmap file for, "git multi-pack-index" triggered an error, instead of just skipping, which has been corrected. (merge eb57277ba3 tb/midx-no-bitmap-for-no-objects later to maint). * "git cmd -h" outside a repository should error out cleanly for many commands, but instead it hit a BUG(), which has been corrected. (merge 87ad07d735 js/short-help-outside-repo-fix later to maint). * "working tree" and "per-worktree ref" were in glossary, but "worktree" itself wasn't, which has been corrected. (merge 2df5387ed0 jc/glossary-worktree later to maint). * L10n support for a few error messages. (merge 3d3c23b3a7 bs/forbid-i18n-of-protocol-token-in-fetch-pack later to maint). * Test modernization. (merge d4fe066e4b sy/t0001-use-path-is-helper later to maint). * "git log --graph --graph" used to leak a graph structure, and there was no way to countermand "--graph" that appear earlier on the command line. A "--no-graph" option has been added and resource leakage has been plugged. * Error output given in response to an ambiguous object name has been improved. (merge 3a73c1dfaf ab/ambiguous-object-name later to maint). * "git sparse-checkout" wants to work with per-worktree configuration, but did not work well in a worktree attached to a bare repository. (merge 3ce1138272 ds/sparse-checkout-requires-per-worktree-config later to maint). * Setting core.untrackedCache to true failed to add the untracked cache extension to the index. * Workaround we have for versions of PCRE2 before their version 10.36 were in effect only for their versions newer than 10.36 by mistake, which has been corrected. (merge 97169fc361 rs/pcre-invalid-utf8-fix-fix later to maint). * Document Taylor as a new member of Git PLC at SFC. Welcome. (merge e8d56ca863 tb/coc-plc-update later to maint). * "git checkout -b branch/with/multi/level/name && git stash" only recorded the last level component of the branch name, which has been corrected. * Check the return value from parse_tree_indirect() to turn segfaults into calls to die(). (merge 8d2eaf649a gc/parse-tree-indirect-errors later to maint). * Newer version of GPGSM changed its output in a backward incompatible way to break our code that parses its output. It also added more processes our tests need to kill when cleaning up. Adjustments have been made to accommodate these changes. (merge b0b70d54c4 fs/gpgsm-update later to maint). * The untracked cache newly computed weren't written back to the on-disk index file when there is no other change to the index, which has been corrected. * "git config -h" did not describe the "--type" option correctly. (merge 5445124fad mf/fix-type-in-config-h later to maint). * The way generation number v2 in the commit-graph files are (not) handled has been corrected. (merge 6dbf4b8172 ds/commit-graph-gen-v2-fixes later to maint). * The method to trigger malloc check used in our tests no longer work with newer versions of glibc. (merge baedc59543 ep/test-malloc-check-with-glibc-2.34 later to maint). * When "git fetch --recurse-submodules" grabbed submodule commits that would be needed to recursively check out newly fetched commits in the superproject, it only paid attention to submodules that are in the current checkout of the superproject. We now do so for all submodules that have been run "git submodule init" on. * "git rebase $base $non_branch_commit", when $base is an ancestor or the $non_branch_commit, modified the current branch, which has been corrected. * When "shallow" information is updated, we forgot to update the in-core equivalent, which has been corrected. * When creating a loose object file, we didn't report the exact filename of the file we failed to fsync, even though the information was readily available, which has been corrected. * "git am" can read from the standard input when no mailbox is given on the command line, but the end-user gets no indication when it happens, making Git appear stuck. (merge 7b20af6a06 jc/mailsplit-warn-on-tty later to maint). * "git mv" failed to refresh the cached stat information for the entry it moved. (merge b7f9130a06 vd/mv-refresh-stat later to maint). @ text @d1 1 a1 1 # $NetBSD: Makefile.version,v 1.103 2022/04/14 23:39:21 gutteridge Exp $ d7 1 a7 1 GIT_VERSION= 2.36.0 @ 1.103 log @git: update to 2.35.3 Includes a fix for CVE-2022-24765. Addresses PR pkg/56796 from Eric N Vander Weele. Git v2.35.2 Release Notes ========================= This release merges up the fixes that appear in v2.30.3, v2.31.2, v2.32.1, v2.33.2 and v2.34.2 to address the security issue CVE-2022-24765; see the release notes for these versions for details. Release notes for 2.35.3 simply state: This release merges up the fixes that appear in v2.35.3. @ text @d1 1 a1 1 # $NetBSD: Makefile.version,v 1.102 2022/01/31 13:03:42 adam Exp $ d7 1 a7 1 GIT_VERSION= 2.35.3 @ 1.102 log @git: updated to 2.35.1 Git v2.35.1 Release Notes ========================= Git 2.35 shipped with a regression that broke use of "rebase" and "stash" in a secondary worktree. This maintenance release ought to fix it. @ text @d1 1 a1 1 # $NetBSD: Makefile.version,v 1.101 2022/01/28 09:07:58 adam Exp $ d7 1 a7 1 GIT_VERSION= 2.35.1 @ 1.102.2.1 log @Pullup ticket #6619 - requested by gutteridge devel/git-base: security update devel/git: security update Revisions pulled up: - devel/git-base/distinfo 1.117 - devel/git/Makefile.version 1.103 ------------------------------------------------------------------- Module Name: pkgsrc Committed By: gutteridge Date: Thu Apr 14 23:39:21 UTC 2022 Modified Files: pkgsrc/devel/git: Makefile.version pkgsrc/devel/git-base: distinfo Log Message: git: update to 2.35.3 Includes a fix for CVE-2022-24765. Addresses PR pkg/56796 from Eric N Vander Weele. Git v2.35.2 Release Notes ============ This release merges up the fixes that appear in v2.30.3, v2.31.2, v2.32.1, v2.33.2 and v2.34.2 to address the security issue CVE-2022-24765; see the release notes for these versions for details. Release notes for 2.35.3 simply state: This release merges up the fixes that appear in v2.35.3. To generate a diff of this commit: cvs rdiff -u -r1.102 -r1.103 pkgsrc/devel/git/Makefile.version cvs rdiff -u -r1.116 -r1.117 pkgsrc/devel/git-base/distinfo @ text @d1 1 a1 1 # $NetBSD: Makefile.version,v 1.102 2022/01/31 13:03:42 adam Exp $ d7 1 a7 1 GIT_VERSION= 2.35.3 @ 1.101 log @git: updated to 2.35.0 Git 2.35 Release Notes ====================== Updates since Git 2.34 ---------------------- Backward compatibility warts * "_" is now treated as any other URL-valid characters in an URL when matching the per-URL configuration variable names. * The color palette used by "git grep" has been updated to match that of GNU grep. Note to those who build from the source * You may need to define NO_UNCOMPRESS2 Makefile macro if you build with zlib older than 1.2.9. * If your compiler cannot grok C99, the build will fail. See the instruction at the beginning of git-compat-util.h if this happens to you. UI, Workflows & Features * "git status --porcelain=v2" now show the number of stash entries with --show-stash like the normal output does. * "git stash" learned the "--staged" option to stash away what has been added to the index (and nothing else). * "git var GIT_DEFAULT_BRANCH" is a way to see what name is used for the newly created branch if "git init" is run. * Various operating modes of "git reset" have been made to work better with the sparse index. * "git submodule deinit" for a submodule whose .git metadata directory is embedded in its working tree refused to work, until the submodule gets converted to use the "absorbed" form where the metadata directory is stored in superproject, and a gitfile at the top-level of the working tree of the submodule points at it. The command is taught to convert such submodules to the absorbed form as needed. * The completion script (in contrib/) learns that the "--date" option of commands from the "git log" family takes "human" and "auto" as valid values. * "Zealous diff3" style of merge conflict presentation has been added. * The "git log --format=%(describe)" placeholder has been extended to allow passing selected command-line options to the underlying "git describe" command. * "default" and "reset" have been added to our color palette. * The cryptographic signing using ssh keys can specify literal keys for keytypes whose name do not begin with the "ssh-" prefix by using the "key::" prefix mechanism (e.g. "key::ecdsa-sha2-nistp256"). * "git fetch" without the "--update-head-ok" option ought to protect a checked out branch from getting updated, to prevent the working tree that checks it out to go out of sync. The code was written before the use of "git worktree" got widespread, and only checked the branch that was checked out in the current worktree, which has been updated. * "git name-rev" has been tweaked to give output that is shorter and easier to understand. * "git apply" has been taught to ignore a message without a patch with the "--allow-empty" option. It also learned to honor the "--quiet" option given from the command line. * The "init" and "set" subcommands in "git sparse-checkout" have been unified for a better user experience and performance. * Many git commands that deal with working tree files try to remove a directory that becomes empty (i.e. "git switch" from a branch that has the directory to another branch that does not would attempt remove all files in the directory and the directory itself). This drops users into an unfamiliar situation if the command was run in a subdirectory that becomes subject to removal due to the command. The commands have been taught to keep an empty directory if it is the directory they were started in to avoid surprising users. * "git am" learns "--empty=(stop|drop|keep)" option to tweak what is done to a piece of e-mail without a patch in it. * The default merge message prepared by "git merge" records the name of the current branch; the name can be overridden with a new option to allow users to pretend a merge is made on a different branch. * The way "git p4" shows file sizes in its output has been updated to use human-readable units. * "git -c branch.autosetupmerge=inherit branch new old" makes "new" to have the same upstream as the "old" branch, instead of marking "old" itself as its upstream. Performance, Internal Implementation, Development Support etc. * The use of errno as a means to carry the nature of error in the ref API implementation has been reworked and reduced. * Teach and encourage first-time contributors to this project to state the base commit when they submit their topic. * The command line completion for "git send-email" options have been tweaked to make it easier to keep it in sync with the command itself. * Ensure that the sparseness of the in-core index matches the index.sparse configuration specified by the repository immediately after the on-disk index file is read. * Code clean-up to eventually allow information on remotes defined for an arbitrary repository to be read. * Build optimization. * Tighten code for testing pack-bitmap. * Weather balloon to break people with compilers that do not support C99. * The "reftable" backend for the refs API, without integrating into the refs subsystem, has been added. * More tests are marked as leak-free. * The test framework learns to list unsatisfied test prerequisites, and optionally error out when prerequisites that are expected to be satisfied are not. * The default setting for trace2 event nesting was too low to cause test failures, which is worked around by bumping it up in the test framework. * Drop support for TravisCI and update test workflows at GitHub. * Many tests that used to need GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME mechanism to force "git" to use 'master' as the default name for the initial branch no longer need it; the use of the mechanism from them have been removed. * Allow running our tests while disabling fsync. * Document the parameters given to the reflog entry iterator callback functions. (merge e6e94f34b2 jc/reflog-iterator-callback-doc later to maint). * The test helper for refs subsystem learned to write bogus and/or nonexistent object name to refs to simulate error situations we want to test Git in. * "diff --histogram" optimization. * Weather balloon to find compilers that do not grok variable declaration in the for() loop. * diff and blame commands have been taught to work better with sparse index. * The chainlint test script linter in the test suite has been updated. * The DEVELOPER=yes build uses -std=gnu99 now. * "git format-patch" uses a single rev_info instance and then exits. Mark the structure with UNLEAK() macro to squelch leak sanitizer. * New interface into the tmp-objdir API to help in-core use of the quarantine feature. * Broken &&-chains in the test scripts have been corrected. * The RCS keyword substitution in "git p4" used to be done assuming that the contents are UTF-8 text, which can trigger decoding errors. We now treat the contents as a bytestring for robustness and correctness. * The conditions to choose different definitions of the FLEX_ARRAY macro for vendor compilers has been simplified to make it easier to maintain. * Correctness and performance update to "diff --color-moved" feature. * "git upload-pack" (the other side of "git fetch") used a 8kB buffer but most of its payload came on 64kB "packets". The buffer size has been enlarged so that such a packet fits. * "git fetch" and "git pull" are now declared sparse-index clean. Also "git ls-files" learns the "--sparse" option to help debugging. * Similar message templates have been consolidated so that translators need to work on fewer number of messages. Fixes since v2.34 ----------------- * "git grep" looking in a blob that has non-UTF8 payload was completely broken when linked with certain versions of PCREv2 library in the latest release. * Other code cleanup, docfix, build fix, etc. * "git pull" with any strategy when the other side is behind us should succeed as it is a no-op, but doesn't. * An earlier change in 2.34.0 caused JGit application (that abused GIT_EDITOR mechanism when invoking "git config") to get stuck with a SIGTTOU signal; it has been reverted. * An earlier change that broke .gitignore matching has been reverted. * Things like "git -c branch.sort=bogus branch new HEAD", i.e. the operation modes of the "git branch" command that do not need the sort key information, no longer errors out by seeing a bogus sort key. (merge 98e7ab6d42 jc/fix-ref-sorting-parse later to maint). * The compatibility implementation for unsetenv(3) were written to mimic ancient, non-POSIX, variant seen in an old glibc; it has been changed to return an integer to match the more modern era. (merge a38989bd5b jc/unsetenv-returns-an-int later to maint). * The clean/smudge conversion code path has been prepared to better work on platforms where ulong is narrower than size_t. (merge 596b5e77c9 mc/clean-smudge-with-llp64 later to maint). * Redact the path part of packfile URI that appears in the trace output. (merge 0ba558ffb1 if/redact-packfile-uri later to maint). * CI has been taught to catch some Unicode directional formatting sequence that can be used in certain mischief. (merge 0e7696c64d js/ci-no-directional-formatting later to maint). * The "--date=format:" gained a workaround for the lack of system support for a non-local timezone to handle "%s" placeholder. (merge 9b591b9403 jk/strbuf-addftime-seconds-since-epoch later to maint). * The "merge" subcommand of "git jump" (in contrib/) silently ignored pathspec and other parameters. (merge 67ba13e5a4 jk/jump-merge-with-pathspec later to maint). * The code to decode the length of packed object size has been corrected. (merge 34de5b8eac jt/pack-header-lshift-overflow later to maint). * The advice message given by "git pull" when the user hasn't made a choice between merge and rebase still said that the merge is the default, which no longer is the case. This has been corrected. (merge 71076d0edd ah/advice-pull-has-no-preference-between-rebase-and-merge later to maint). * "git fetch", when received a bad packfile, can fail with SIGPIPE. This wasn't wrong per-se, but we now detect the situation and fail in a more predictable way. (merge 2a4aed42ec jk/fetch-pack-avoid-sigpipe-to-index-pack later to maint). * The function to cull a child process and determine the exit status had two separate code paths for normal callers and callers in a signal handler, and the latter did not yield correct value when the child has caught a signal. The handling of the exit status has been unified for these two code paths. An existing test with flakiness has also been corrected. (merge 5263e22cba jk/t7006-sigpipe-tests-fix later to maint). * When a non-existent program is given as the pager, we tried to reuse an uninitialized child_process structure and crashed, which has been fixed. (merge f917f57f40 em/missing-pager later to maint). * The single-key-input mode in "git add -p" had some code to handle keys that generate a sequence of input via ReadKey(), which did not handle end-of-file correctly, which has been fixed. (merge fc8a8126df cb/add-p-single-key-fix later to maint). * "git rebase -x" added an unnecessary 'exec' instructions before 'noop', which has been corrected. (merge cc9dcdee61 en/rebase-x-fix later to maint). * When the "git push" command is killed while the receiving end is trying to report what happened to the ref update proposals, the latter used to die, due to SIGPIPE. The code now ignores SIGPIPE to increase our chances to run the post-receive hook after it happens. (merge d34182b9e3 rj/receive-pack-avoid-sigpipe-during-status-reporting later to maint). * "git worktree add" showed "Preparing worktree" message to the standard output stream, but when it failed, the message from die() went to the standard error stream. Depending on the order the stdio streams are flushed at the program end, this resulted in confusing output. It has been corrected by sending all the chatty messages to the standard error stream. (merge b50252484f es/worktree-chatty-to-stderr later to maint). * Coding guideline document has been updated to clarify what goes to standard error in our system. (merge e258eb4800 es/doc-stdout-vs-stderr later to maint). * The sparse-index/sparse-checkout feature had a bug in its use of the matching code to determine which path is in or outside the sparse checkout patterns. (merge 8c5de0d265 ds/sparse-deep-pattern-checkout-fix later to maint). * "git rebase -x" by mistake started exporting the GIT_DIR and GIT_WORK_TREE environment variables when the command was rewritten in C, which has been corrected. (merge 434e0636db en/rebase-x-wo-git-dir-env later to maint). * When "git log" implicitly enabled the "decoration" processing without being explicitly asked with "--decorate" option, it failed to read and honor the settings given by the "--decorate-refs" option. * "git fetch --set-upstream" did not check if there is a current branch, leading to a segfault when it is run on a detached HEAD, which has been corrected. (merge 17baeaf82d ab/fetch-set-upstream-while-detached later to maint). * Among some code paths that ask an yes/no question, only one place gave a prompt that looked different from the others, which has been updated to match what the others create. (merge 0fc8ed154c km/help-prompt-fix later to maint). * "git log --invert-grep --author=" used to exclude commits written by the given author, but now "--invert-grep" only affects the matches made by the "--grep=" option. (merge 794c000267 rs/log-invert-grep-with-headers later to maint). * "git grep --perl-regexp" failed to match UTF-8 characters with wildcard when the pattern consists only of ASCII letters, which has been corrected. (merge 32e3e8bc55 rs/pcre2-utf later to maint). * Certain sparse-checkout patterns that are valid in non-cone mode led to segfault in cone mode, which has been corrected. * Use of certain "git rev-list" options with "git fast-export" created nonsense results (the worst two of which being "--reverse" and "--invert-grep --grep="). The use of "--first-parent" is made to behave a bit more sensible than before. (merge 726a228dfb ws/fast-export-with-revision-options later to maint). * Perf tests were run with end-user's shell, but it has been corrected to use the shell specified by $TEST_SHELL_PATH. (merge 9ccab75608 ja/perf-use-specified-shell later to maint). * Fix dependency rules to generate hook-list.h header file. (merge d3fd1a6667 ab/makefile-hook-list-dependency-fix later to maint). * "git stash" by default triggers its "push" action, but its implementation also made "git stash -h" to show short help only for "git stash push", which has been corrected. (merge ca7990cea5 ab/do-not-limit-stash-help-to-push later to maint). * "git apply --3way" bypasses the attempt to do a three-way application in more cases to address the regression caused by the recent change to use direct application as a fallback. (merge 34d607032c jz/apply-3-corner-cases later to maint). * Fix performance-releated bug in "git subtree" (in contrib/). (merge 3ce8888fb4 jl/subtree-check-parents-argument-passing-fix later to maint). * Extend the guidance to choose the base commit to build your work on, and hint/nudge contributors to read others' changes. (merge fdfae830f8 jc/doc-submitting-patches-choice-of-base later to maint). * A corner case bug in the ort merge strategy has been corrected. (merge d30126c20d en/merge-ort-renorm-with-rename-delete-conflict-fix later to maint). * "git stash apply" forgot to attempt restoring untracked files when it failed to restore changes to tracked ones. (merge 71cade5a0b en/stash-df-fix later to maint). * Calling dynamically loaded functions on Windows has been corrected. (merge 4a9b204920 ma/windows-dynload-fix later to maint). * Some lockfile code called free() in signal-death code path, which has been corrected. (merge 58d4d7f1c5 ps/lockfile-cleanup-fix later to maint). * Other code cleanup, docfix, build fix, etc. (merge 74db416c9c cw/protocol-v2-doc-fix later to maint). (merge f9b2b6684d ja/doc-cleanup later to maint). (merge 7d1b866778 jc/fix-first-object-walk later to maint). (merge 538ac74604 js/trace2-avoid-recursive-errors later to maint). (merge 152923b132 jk/t5319-midx-corruption-test-deflake later to maint). (merge 9081a421a6 ab/checkout-branch-info-leakfix later to maint). (merge 42c456ff81 rs/mergesort later to maint). (merge ad506e6780 tl/midx-docfix later to maint). (merge bf5b83fd8a hk/ci-checkwhitespace-commentfix later to maint). (merge 49f1eb3b34 jk/refs-g11-workaround later to maint). (merge 7d3fc7df70 jt/midx-doc-fix later to maint). (merge 7b089120d9 hn/create-reflog-simplify later to maint). (merge 9e12400da8 cb/mingw-gmtime-r later to maint). (merge 0bf0de6cc7 tb/pack-revindex-on-disk-cleanup later to maint). (merge 2c68f577fc ew/cbtree-remove-unused-and-broken-cb-unlink later to maint). (merge eafd6e7e55 ab/die-with-bug later to maint). (merge 91028f7659 jc/grep-patterntype-default-doc later to maint). (merge 47ca93d071 ds/repack-fixlets later to maint). (merge e6a9bc0c60 rs/t4202-invert-grep-test-fix later to maint). (merge deb5407a42 gh/gpg-doc-markup-fix later to maint). (merge 999bba3e0b rs/daemon-plug-leak later to maint). (merge 786eb1ba39 js/l10n-mention-ngettext-early-in-readme later to maint). (merge 2f12b31b74 ab/makefile-msgfmt-wo-stats later to maint). (merge 0517f591ca fs/gpg-unknown-key-test-fix later to maint). (merge 97d6fb5a1f ma/header-dup-cleanup later to maint). @ text @d1 1 a1 1 # $NetBSD: Makefile.version,v 1.100 2021/11/28 16:25:24 adam Exp $ d7 1 a7 1 GIT_VERSION= 2.35.0 @ 1.100 log @git: updated to 2.34.1 Git v2.34.1 Release Notes ========================= This release is primarily to fix a handful of regressions in Git 2.34. Fixes since v2.34 ----------------- * "git grep" looking in a blob that has non-UTF8 payload was completely broken when linked with certain versions of PCREv2 library in the latest release. * "git pull" with any strategy when the other side is behind us should succeed as it is a no-op, but doesn't. * An earlier change in 2.34.0 caused JGit application (that abused GIT_EDITOR mechanism when invoking "git config") to get stuck with a SIGTTOU signal; it has been reverted. * An earlier change that broke .gitignore matching has been reverted. * SubmittingPatches document gained a syntactically incorrect mark-up, which has been corrected. @ text @d1 1 a1 1 # $NetBSD: Makefile.version,v 1.99 2021/11/17 09:01:39 adam Exp $ d7 1 a7 1 GIT_VERSION= 2.34.1 @ 1.99 log @git: updated to 2.34.0 Git 2.34 Release Notes ====================== Updates since Git 2.33 ---------------------- Backward compatibility notes * The "--preserve-merges" option of "git rebase" has been removed. UI, Workflows & Features * Pathname expansion (like "~username/") learned a way to specify a location relative to Git installation (e.g. its $sharedir which is $(prefix)/share), with "%(prefix)". * The `ort` strategy is used instead of `recursive` as the default merge strategy. * The userdiff pattern for "java" language has been updated. * "git rebase" by default skips changes that are equivalent to commits that are already in the history the branch is rebased onto; give messages when this happens to let the users be aware of skipped commits, and also teach them how to tell "rebase" to keep duplicated changes. * The advice message that "git cherry-pick" gives when it asks conflicted replay of a commit to be resolved by the end user has been updated. * After "git clone --recurse-submodules", all submodules are cloned but they are not by default recursed into by other commands. With submodule.stickyRecursiveClone configuration set, submodule.recurse configuration is set to true in a repository created by "clone" with "--recurse-submodules" option. * The logic for auto-correction of misspelt subcommands learned to go interactive when the help.autocorrect configuration variable is set to 'prompt'. * "git maintenance" scheduler learned to use systemd timers as a possible backend. * "git diff --submodule=diff" showed failure from run_command() when trying to run diff inside a submodule, when the user manually removes the submodule directory. * "git bundle unbundle" learned to show progress display. * In cone mode, the sparse-index code path learned to remove ignored files (like build artifacts) outside the sparse cone, allowing the entire directory outside the sparse cone to be removed, which is especially useful when the sparse patterns change. * Taking advantage of the CGI interface, http-backend has been updated to enable protocol v2 automatically when the other side asks for it. * The credential-cache helper has been adjusted to Windows. * The error in "git help no-such-git-command" is handled better. * The unicode character width table (used for output alignment) has been updated. * The ref iteration code used to optionally allow dangling refs to be shown, which has been tightened up. * "git add", "git mv", and "git rm" have been adjusted to avoid updating paths outside of the sparse-checkout definition unless the user specifies a "--sparse" option. * "git repack" has been taught to generate multi-pack reachability bitmaps. * "git fsck" has been taught to report mismatch between expected and actual types of an object better. * In addition to GnuPG, ssh public crypto can be used for object and push-cert signing. Note that this feature cannot be used with ssh-keygen from OpenSSH 8.7, whose support for it is broken. Avoid using it unless you update to OpenSSH 8.8. * "git log --grep=string --author=name" learns to highlight hits just like "git grep string" does. Performance, Internal Implementation, Development Support etc. * "git bisect" spawned "git show-branch" only to pretty-print the title of the commit after checking out the next version to be tested; this has been rewritten in C. * "git add" can work better with the sparse index. * Support for ancient versions of cURL library (pre 7.19.4) has been dropped. * A handful of tests that assumed implementation details of files backend for refs have been cleaned up. * trace2 logs learned to show parent process name to see in what context Git was invoked. * Loading of ref tips to prepare for common ancestry negotiation in "git fetch-pack" has been optimized by taking advantage of the commit graph when available. * Remind developers that the userdiff patterns should be kept simple and permissive, assuming that the contents they apply are always syntactically correct. * The current implementation of GIT_TEST_FAIL_PREREQS is broken in that checking for the lack of a prerequisite would not work. Avoid the use of "if ! test_have_prereq X" in a test script. * The revision traversal API has been optimized by taking advantage of the commit-graph, when available, to determine if a commit is reachable from any of the existing refs. * "git fetch --quiet" optimization to avoid useless computation of info that will never be displayed. * Callers from older advice_config[] based API has been updated to use the newer advice_if_enabled() and advice_enabled() API. * Teach "test_pause" and "debug" helpers to allow using the HOME and TERM environment variables the user usually uses. * "make INSTALL_STRIP=-s install" allows the installation step to use "install -s" to strip the binaries as they get installed. * Code that handles large number of refs in the "git fetch" code path has been optimized. * The reachability bitmap file used to be generated only for a single pack, but now we've learned to generate bitmaps for history that span across multiple packfiles. * The code to make "git grep" recurse into submodules has been updated to migrate away from the "add submodule's object store as an alternate object store" mechanism (which is suboptimal). * The tracing of process ancestry information has been enhanced. * Reduce number of write(2) system calls while sending the ref advertisement. * Update the build procedure to use the "-pedantic" build when DEVELOPER makefile macro is in effect. * Large part of "git submodule add" gets rewritten in C. * The run-command API has been updated so that the callers can easily ask the file descriptors open for packfiles to be closed immediately before spawning commands that may trigger auto-gc. * An oddball OPTION_ARGUMENT feature has been removed from the parse-options API. * The mergesort implementation used to sort linked list has been optimized. * Remove external declaration of functions that no longer exist. * "git multi-pack-index write --bitmap" learns to propagate the hashcache from original bitmap to resulting bitmap. * CI learns to run the leak sanitizer builds. * "git grep --recurse-submodules" takes trees and blobs from the submodule repository, but the textconv settings when processing a blob from the submodule is not taken from the submodule repository. A test is added to demonstrate the issue, without fixing it. * Teach "git help -c" into helping the command line completion of configuration variables. * When "git cmd -h" shows more than one line of usage text (e.g. the cmd subcommand may take sub-sub-command), parse-options API learned to align these lines, even across i18n/l10n. * Prevent "make sparse" from running for the source files that haven't been modified. * The code path to write a new version of .midx multi-pack index files has learned to release the mmaped memory holding the current version of .midx before removing them from the disk, as some platforms do not allow removal of a file that still has mapping. * A new feature has been added to abort early in the test framework. Fixes since v2.33 ----------------- * Input validation of "git pack-objects --stdin-packs" has been corrected. * Bugfix for common ancestor negotiation recently introduced in "git push" code path. * "git pull" had various corner cases that were not well thought out around its --rebase backend, e.g. "git pull --ff-only" did not stop but went ahead and rebased when the history on other side is not a descendant of our history. The series tries to fix them up. * "git apply" miscounted the bytes and failed to read to the end of binary hunks. * "git range-diff" code clean-up. * "git commit --fixup" now works with "--edit" again, after it was broken in v2.32. * Use upload-artifacts v1 (instead of v2) for 32-bit linux, as the new version has a blocker bug for that architecture. * Checking out all the paths from HEAD during the last conflicted step in "git rebase" and continuing would cause the step to be skipped (which is expected), but leaves MERGE_MSG file behind in $GIT_DIR and confuses the next "git commit", which has been corrected. * Various bugs in "git rebase -r" have been fixed. * mmap() imitation used to call xmalloc() that dies upon malloc() failure, which has been corrected to just return an error to the caller to be handled. * "git diff --relative" segfaulted and/or produced incorrect result when there are unmerged paths. * The delayed checkout code path in "git checkout" etc. were chatty even when --quiet and/or --no-progress options were given. * "git branch -D " used to refuse to remove a broken branch ref that points at a missing commit, which has been corrected. * Build update for Apple clang. * The parser for the "--nl" option of "git column" has been corrected. * "git upload-pack" which runs on the other side of "git fetch" forgot to take the ref namespaces into account when handling want-ref requests. * The sparse-index support can corrupt the index structure by storing a stale and/or uninitialized data, which has been corrected. * Buggy tests could damage repositories outside the throw-away test area we created. We now by default export GIT_CEILING_DIRECTORIES to limit the damage from such a stray test. * Even when running "git send-email" without its own threaded discussion support, a threading related header in one message is carried over to the subsequent message to result in an unwanted threading, which has been corrected. * The output from "git fast-export", when its anonymization feature is in use, showed an annotated tag incorrectly. * Recent "diff -m" changes broke "gitk", which has been corrected. * The "git apply -3" code path learned not to bother the lower level merge machinery when the three-way merge can be trivially resolved without the content level merge. This fixes a regression caused by recent "-3way first and fall back to direct application" change. * The code that optionally creates the *.rev reverse index file has been optimized to avoid needless computation when it is not writing the file out. * "git range-diff -I... " segfaulted, which has been corrected. * The order in which various files that make up a single (conceptual) packfile has been reevaluated and straightened up. This matters in correctness, as an incomplete set of files must not be shown to a running Git. * The "mode" word is useless in a call to open(2) that does not create a new file. Such a call in the files backend of the ref subsystem has been cleaned up. * "git update-ref --stdin" failed to flush its output as needed, which potentially led the conversation to a deadlock. * When "git am --abort" fails to abort correctly, it still exited with exit status of 0, which has been corrected. * Correct nr and alloc members of strvec struct to be of type size_t. * "git stash", where the tentative change involves changing a directory to a file (or vice versa), was confused, which has been corrected. * "git clone" from a repository whose HEAD is unborn into a bare repository didn't follow the branch name the other side used, which is corrected. * "git cvsserver" had a long-standing bug in its authentication code, which has finally been corrected (it is unclear and is a separate question if anybody is seriously using it, though). * "git difftool --dir-diff" mishandled symbolic links. * Sensitive data in the HTTP trace were supposed to be redacted, but we failed to do so in HTTP/2 requests. * "make clean" has been updated to remove leftover .depend/ directories, even when it is not told to use them to compute header dependencies. * Protocol v0 clients can get stuck parsing a malformed feature line. * A few kinds of changes "git status" can show were not documented. (merge d2a534c515 ja/doc-status-types-and-copies later to maint). * The mergesort implementation used to sort linked list has been optimized. (merge c90cfc225b rs/mergesort later to maint). * An editor session launched during a Git operation (e.g. during 'git commit') can leave the terminal in a funny state. The code path has updated to save the terminal state before, and restore it after, it spawns an editor. (merge 3d411afabc cm/save-restore-terminal later to maint). * "git cat-file --batch" with the "--batch-all-objects" option is supposed to iterate over all the objects found in a repository, but it used to translate these object names using the replace mechanism, which defeats the point of enumerating all objects in the repository. This has been corrected. (merge bf972896d7 jk/cat-file-batch-all-wo-replace later to maint). * Recent sparse-index work broke safety against attempts to add paths with trailing slashes to the index, which has been corrected. (merge c8ad9d04c6 rs/make-verify-path-really-verify-again later to maint). * The "--color-lines" and "--color-by-age" options of "git blame" have been missing, which are now documented. (merge 8c32856133 bs/doc-blame-color-lines later to maint). * The PATH used in CI job may be too wide and let incompatible dlls to be grabbed, which can cause the build&test to fail. Tighten it. (merge 7491ef6198 js/windows-ci-path-fix later to maint). * Avoid performance measurements from getting ruined by gc and other housekeeping pauses interfering in the middle. (merge be79131a53 rs/disable-gc-during-perf-tests later to maint). * Stop "git add --dry-run" from creating new blob and tree objects. (merge e578d0311d rs/add-dry-run-without-objects later to maint). * "git commit" gave duplicated error message when the object store was unwritable, which has been corrected. (merge 4ef91a2d79 ab/fix-commit-error-message-upon-unwritable-object-store later to maint). * Recent sparse-index addition, namely any use of index_name_pos(), can expand sparse index entries and breaks any code that walks cache-tree or existing index entries. One such instance of such a breakage has been corrected. * The xxdiff difftool backend can exit with status 128, which the difftool-helper that launches the backend takes as a significant failure, when it is not significant at all. Work it around. (merge 571f4348dd da/mergetools-special-case-xxdiff-exit-128 later to maint). * Improve test framework around unwritable directories. (merge 5d22e18965 ab/test-cleanly-recreate-trash-directory later to maint). * "git push" client talking to an HTTP server did not diagnose the lack of the final status report from the other side correctly, which has been corrected. (merge c5c3486f38 jk/http-push-status-fix later to maint). * Update "git archive" documentation and give explicit mention on the compression level for both zip and tar.gz format. (merge c4b208c309 bs/archive-doc-compression-level later to maint). * Drop "git sparse-checkout" from the list of common commands. (merge 6a9a50a8af sg/sparse-index-not-that-common-a-command later to maint). * "git branch -c/-m new old" was not described to copy config, which has been corrected. (merge 8252ec300e jc/branch-copy-doc later to maint). * Squelch over-eager warning message added during this cycle. * Fix long-standing shell syntax error in the completion script. (merge 46b0585286 re/completion-fix-test-equality later to maint). * Teach "git commit-graph" command not to allow using replace objects at all, as we do not use the commit-graph at runtime when we see object replacement. (merge 095d112f8c ab/ignore-replace-while-working-on-commit-graph later to maint). * "git pull --no-verify" did not affect the underlying "git merge". (merge 47bfdfb3fd ar/fix-git-pull-no-verify later to maint). * One CI task based on Fedora image noticed a not-quite-kosher construct recently, which has been corrected. * "git pull --ff-only" and "git pull --rebase --ff-only" should make it a no-op to attempt pulling from a remote that is behind us, but instead the command errored out by saying it was impossible to fast-forward, which may technically be true, but not a useful thing to diagnose as an error. This has been corrected. (merge 361cb52383 jc/fix-pull-ff-only-when-already-up-to-date later to maint). * The way Cygwin emulates a unix-domain socket, on top of which the simple-ipc mechanism is implemented, can race with the program on the other side that wants to use the socket, and briefly make it appear as a regular file before lstat(2) starts reporting it as a socket. We now have a workaround on the side that connects to a unix domain socket. * Other code cleanup, docfix, build fix, etc. (merge f188160be9 ab/bundle-remove-verbose-option later to maint). (merge 8c6b4332b4 rs/close-pack-leakfix later to maint). (merge 51b04c05b7 bs/difftool-msg-tweak later to maint). (merge dd20e4a6db ab/make-compdb-fix later to maint). (merge 6ffb990dc4 os/status-docfix later to maint). (merge 100c2da2d3 rs/p3400-lose-tac later to maint). (merge 76f3b69896 tb/aggregate-ignore-leading-whitespaces later to maint). (merge 6e4fd8bfcd tz/doc-link-to-bundle-format-fix later to maint). (merge f6c013dfa1 jc/doc-commit-header-continuation-line later to maint). (merge ec9a37d69b ab/pkt-line-cleanup later to maint). (merge 8650c6298c ab/fix-make-lint-docs later to maint). (merge 1c720357ce ab/test-lib-diff-cleanup later to maint). (merge 6b615dbece ks/submodule-add-message-fix later to maint). (merge 203eb8381a jc/doc-format-patch-clarify-auto-base later to maint). (merge 559664c792 ab/test-lib later to maint). @ text @d1 1 a1 1 # $NetBSD: Makefile.version,v 1.98 2021/10/13 06:56:09 adam Exp $ d7 1 a7 1 GIT_VERSION= 2.34.0 @ 1.98 log @git: updated to 2.33.1 Git 2.33.1 Release Notes ======================== This primarily is to backport various fixes accumulated during the development towards Git 2.34, the next feature release. Fixes since v2.33 ----------------- * The unicode character width table (used for output alignment) has been updated. * Input validation of "git pack-objects --stdin-packs" has been corrected. * Bugfix for common ancestor negotiation recently introduced in "git push" codepath. * "git pull" had various corner cases that were not well thought out around its --rebase backend, e.g. "git pull --ff-only" did not stop but went ahead and rebased when the history on other side is not a descendant of our history. The series tries to fix them up. * "git apply" miscounted the bytes and failed to read to the end of binary hunks. * "git range-diff" code clean-up. * "git commit --fixup" now works with "--edit" again, after it was broken in v2.32. * Use upload-artifacts v1 (instead of v2) for 32-bit linux, as the new version has a blocker bug for that architecture. * Checking out all the paths from HEAD during the last conflicted step in "git rebase" and continuing would cause the step to be skipped (which is expected), but leaves MERGE_MSG file behind in $GIT_DIR and confuses the next "git commit", which has been corrected. * Various bugs in "git rebase -r" have been fixed. * mmap() imitation used to call xmalloc() that dies upon malloc() failure, which has been corrected to just return an error to the caller to be handled. * "git diff --relative" segfaulted and/or produced incorrect result when there are unmerged paths. * The delayed checkout code path in "git checkout" etc. were chatty even when --quiet and/or --no-progress options were given. * "git branch -D " used to refuse to remove a broken branch ref that points at a missing commit, which has been corrected. * Build update for Apple clang. * The parser for the "--nl" option of "git column" has been corrected. * "git upload-pack" which runs on the other side of "git fetch" forgot to take the ref namespaces into account when handling want-ref requests. * The sparse-index support can corrupt the index structure by storing a stale and/or uninitialized data, which has been corrected. * Buggy tests could damage repositories outside the throw-away test area we created. We now by default export GIT_CEILING_DIRECTORIES to limit the damage from such a stray test. * Even when running "git send-email" without its own threaded discussion support, a threading related header in one message is carried over to the subsequent message to result in an unwanted threading, which has been corrected. * The output from "git fast-export", when its anonymization feature is in use, showed an annotated tag incorrectly. * Recent "diff -m" changes broke "gitk", which has been corrected. * "git maintenance" scheduler fix for macOS. * A pathname in an advice message has been made cut-and-paste ready. * The "git apply -3" code path learned not to bother the lower level merge machinery when the three-way merge can be trivially resolved without the content level merge. * The code that optionally creates the *.rev reverse index file has been optimized to avoid needless computation when it is not writing the file out. * "git range-diff -I... " segfaulted, which has been corrected. * The order in which various files that make up a single (conceptual) packfile has been reevaluated and straightened up. This matters in correctness, as an incomplete set of files must not be shown to a running Git. * The "mode" word is useless in a call to open(2) that does not create a new file. Such a call in the files backend of the ref subsystem has been cleaned up. * "git update-ref --stdin" failed to flush its output as needed, which potentially led the conversation to a deadlock. * When "git am --abort" fails to abort correctly, it still exited with exit status of 0, which has been corrected. * Correct nr and alloc members of strvec struct to be of type size_t. * "git stash", where the tentative change involves changing a directory to a file (or vice versa), was confused, which has been corrected. * "git clone" from a repository whose HEAD is unborn into a bare repository didn't follow the branch name the other side used, which is corrected. * "git cvsserver" had a long-standing bug in its authentication code, which has finally been corrected (it is unclear and is a separate question if anybody is seriously using it, though). * "git difftool --dir-diff" mishandled symbolic links. * Sensitive data in the HTTP trace were supposed to be redacted, but we failed to do so in HTTP/2 requests. * "make clean" has been updated to remove leftover .depend/ directories, even when it is not told to use them to compute header dependencies. * Protocol v0 clients can get stuck parsing a malformed feature line. Also contains various documentation updates and code clean-ups. @ text @d1 1 a1 1 # $NetBSD: Makefile.version,v 1.97 2021/08/23 10:41:25 adam Exp $ d7 1 a7 1 GIT_VERSION= 2.33.1 @ 1.97 log @git: updated to 2.33.0 Git 2.33 Release Notes ====================== Updates since Git 2.32 ---------------------- UI, Workflows & Features * "git send-email" learned the "--sendmail-cmd" command line option and the "sendemail.sendmailCmd" configuration variable, which is a more sensible approach than the current way of repurposing the "smtp-server" that is meant to name the server to instead name the command to talk to the server. * The userdiff pattern for C# learned the token "record". * "git rev-list" learns to omit the "commit " header lines from the output with the `--no-commit-header` option. * "git worktree add --lock" learned to record why the worktree is locked with a custom message. Performance, Internal Implementation, Development Support etc. * The code to handle the "--format" option in "for-each-ref" and friends made too many string comparisons on %(atom)s used in the format string, which has been corrected by converting them into enum when the format string is parsed. * Use the hashfile API in the codepath that writes the index file to reduce code duplication. * Repeated rename detections in a sequence of mergy operations have been optimized out for the 'ort' merge strategy. * Preliminary clean-up of tests before the main reftable changes hits the codebase. * The backend for "diff -G/-S" has been updated to use pcre2 engine when available. * Use ".DELETE_ON_ERROR" pseudo target to simplify our Makefile. * Code cleanup around struct_type_init() functions. * "git send-email" optimization. * GitHub Actions / CI update. (merge 0dc787a9f2 js/ci-windows-update later to maint). * Object accesses in repositories with many alternate object store have been optimized. * "git log" has been optimized not to waste cycles to load ref decoration data that may not be needed. * Many "printf"-like helper functions we have have been annotated with __attribute__() to catch placeholder/parameter mismatches. * Tests that cover protocol bits have been updated and helpers used there have been consolidated. * The CI gained a new job to run "make sparse" check. * "git status" codepath learned to work with sparsely populated index without hydrating it fully. * A guideline for gender neutral documentation has been added. * Documentation on "git diff -l" and diff.renameLimit have been updated, and the defaults for these limits have been raised. * The completion support used to offer alternate spelling of options that exist only for compatibility, which has been corrected. * "TEST_OUTPUT_DIRECTORY=there make test" failed to work, which has been corrected. * "git bundle" gained more test coverage. * "git read-tree" had a codepath where blobs are fetched one-by-one from the promisor remote, which has been corrected to fetch in bulk. * Rewrite of "git submodule" in C continues. * "git checkout" and "git commit" learn to work without unnecessarily expanding sparse indexes. Fixes since v2.32 ----------------- * We historically rejected a very short string as an author name while accepting a patch e-mail, which has been loosened. (merge 72ee47ceeb ef/mailinfo-short-name later to maint). * The parallel checkout codepath did not initialize object ID field used to talk to the worker processes in a futureproof way. * Rewrite code that triggers undefined behaviour warning. (merge aafa5df0df jn/size-t-casted-to-off-t-fix later to maint). * The description of "fast-forward" in the glossary has been updated. (merge e22f2daed0 ry/clarify-fast-forward-in-glossary later to maint). * Recent "git clone" left a temporary directory behind when the transport layer returned an failure. (merge 6aacb7d861 jk/clone-clean-upon-transport-error later to maint). * "git fetch" over protocol v2 left its side of the socket open after it finished speaking, which unnecessarily wasted the resource on the other side. (merge ae1a7eefff jk/fetch-pack-v2-half-close-early later to maint). * The command line completion (in contrib/) learned that "git diff" takes the "--anchored" option. (merge d1e7c2cac9 tb/complete-diff-anchored later to maint). * "git-svn" tests assumed that "locale -a", which is used to pick an available UTF-8 locale, is available everywhere. A knob has been introduced to allow testers to specify a suitable locale to use. (merge 482c962de4 dd/svn-test-wo-locale-a later to maint). * Update "git subtree" to work better on Windows. (merge 77f37de39f js/subtree-on-windows-fix later to maint). * Remove multimail from contrib/ (merge f74d11471f js/no-more-multimail later to maint). * Make the codebase MSAN clean. (merge 4dbc55e87d ah/uninitialized-reads-fix later to maint). * Work around inefficient glob substitution in older versions of bash by rewriting parts of a test. (merge eb87c6f559 jx/t6020-with-older-bash later to maint). * Avoid duplicated work while building reachability bitmaps. (merge aa9ad6fee5 jk/bitmap-tree-optim later to maint). * We broke "GIT_SKIP_TESTS=t?000" to skip certain tests in recent update, which got fixed. * The side-band demultiplexer that is used to display progress output from the remote end did not clear the line properly when the end of line hits at a packet boundary, which has been corrected. * Some test scripts assumed that readlink(1) was universally installed and available, which is not the case. (merge 7c0afdf23c jk/test-without-readlink-1 later to maint). * Recent update to completion script (in contrib/) broke those who use the __git_complete helper to define completion to their custom command. (merge cea232194d fw/complete-cmd-idx-fix later to maint). * Output from some of our tests were affected by the width of the terminal that they were run in, which has been corrected by exporting a fixed value in the COLUMNS environment. (merge c49a177bec ab/fix-columns-to-80-during-tests later to maint). * On Windows, mergetool has been taught to find kdiff3.exe just like it finds winmerge.exe. (merge 47eb4c6890 ms/mergetools-kdiff3-on-windows later to maint). * When we cannot figure out how wide the terminal is, we use a fallback value of 80 ourselves (which cannot be avoided), but when we run the pager, we export it in COLUMNS, which forces the pager to use the hardcoded value, even when the pager is perfectly capable to figure it out itself. Stop exporting COLUMNS when we fall back on the hardcoded default value for our own use. (merge 9b6e2c8b98 js/stop-exporting-bogus-columns later to maint). * "git cat-file --batch-all-objects"" misbehaved when "--batch" is in use and did not ask for certain object traits. (merge ee02ac6164 zh/cat-file-batch-fix later to maint). * Some code and doc clarification around "git push". * The "union" conflict resultion variant misbehaved when used with binary merge driver. (merge 382b601acd jk/union-merge-binary later to maint). * Prevent "git p4" from failing to submit changes to binary file. (merge 54662d5958 dc/p4-binary-submit-fix later to maint). * "git grep --and -e foo" ought to have been diagnosed as an error but instead segfaulted, which has been corrected. (merge fe7fe62d8d rs/grep-parser-fix later to maint). * The merge code had funny interactions between content based rename detection and directory rename detection. (merge 3585d0ea23 en/merge-dir-rename-corner-case-fix later to maint). * When rebuilding the multi-pack index file reusing an existing one, we used to blindly trust the existing file and ended up carrying corrupted data into the updated file, which has been corrected. (merge f89ecf7988 tb/midx-use-checksum later to maint). * Update the location of system-side configuration file on Windows. (merge e355307692 js/gfw-system-config-loc-fix later to maint). * Code recently added to support common ancestry negotiation during "git push" did not sanity check its arguments carefully enough. (merge eff40457a4 ab/fetch-negotiate-segv-fix later to maint). * Update the documentation not to assume users are of certain gender and adds to guidelines to do so. (merge 46a237f42f ds/gender-neutral-doc later to maint). * "git commit --allow-empty-message" won't abort the operation upon an empty message, but the hint shown in the editor said otherwise. (merge 6f70f00b4f hj/commit-allow-empty-message later to maint). * The code that gives an error message in "git multi-pack-index" when no subcommand is given tried to print a NULL pointer as a strong, which has been corrected. (merge 88617d11f9 tb/reverse-midx later to maint). * CI update. (merge a066a90db6 js/ci-check-whitespace-updates later to maint). * Documentation fix for "git pull --rebase=no". (merge d3236becec fc/pull-no-rebase-merges-theirs-into-ours later to maint). * A race between repacking and using pack bitmaps has been corrected. (merge dc1daacdcc jk/check-pack-valid-before-opening-bitmap later to maint). * The local changes stashed by "git merge --autostash" were lost when the merge failed in certain ways, which has been corrected. * Windows rmdir() equivalent behaves differently from POSIX ones in that when used on a symbolic link that points at a directory, the target directory gets removed, which has been corrected. (merge 3e7d4888e5 tb/mingw-rmdir-symlink-to-directory later to maint). * Other code cleanup, docfix, build fix, etc. (merge bfe35a6165 ah/doc-describe later to maint). (merge f302c1e4aa jc/clarify-revision-range later to maint). (merge 3127ff90ea tl/fix-packfile-uri-doc later to maint). (merge a84216c684 jk/doc-color-pager later to maint). (merge 4e0a64a713 ab/trace2-squelch-gcc-warning later to maint). (merge 225f7fa847 ps/rev-list-object-type-filter later to maint). (merge 5317dfeaed dd/honor-users-tar-in-tests later to maint). (merge ace6d8e3d6 tk/partial-clone-repack-doc later to maint). (merge 7ba68e0cf1 js/trace2-discard-event-docfix later to maint). (merge 8603c419d3 fc/doc-default-to-upstream-config later to maint). (merge 1d72b604ef jk/revision-squelch-gcc-warning later to maint). (merge abcb66c614 ar/typofix later to maint). (merge 9853830787 ah/graph-typofix later to maint). (merge aac578492d ab/config-hooks-path-testfix later to maint). (merge 98c7656a18 ar/more-typofix later to maint). (merge 6fb9195f6c jk/doc-max-pack-size later to maint). (merge 4184cbd635 ar/mailinfo-memcmp-to-skip-prefix later to maint). (merge 91d2347033 ar/doc-libera-chat-in-my-first-contrib later to maint). (merge 338abb0f04 ab/cmd-foo-should-return later to maint). (merge 546096a5cb ab/xdiff-bug-cleanup later to maint). (merge b7b793d1e7 ab/progress-cleanup later to maint). (merge d94f9b8e90 ba/object-info later to maint). (merge 52ff891c03 ar/test-code-cleanup later to maint). (merge a0538e5c8b dd/document-log-decorate-default later to maint). (merge ce24797d38 mr/cmake later to maint). (merge 9eb542f2ee ab/pre-auto-gc-hook-test later to maint). (merge 9fffc38583 bk/doc-commit-typofix later to maint). (merge 1cf823d8f0 ks/submodule-cleanup later to maint). (merge ebbf5d2b70 js/config-mak-windows-pcre-fix later to maint). (merge 617480d75b hn/refs-iterator-peel-returns-boolean later to maint). (merge 6a24cc71ed ar/submodule-helper-include-cleanup later to maint). (merge 5632e838f8 rs/khash-alloc-cleanup later to maint). (merge b1d87fbaf1 jk/typofix later to maint). (merge e04170697a ab/gitignore-discovery-doc later to maint). (merge 8232a0ff48 dl/packet-read-response-end-fix later to maint). (merge eb448631fb dl/diff-merge-base later to maint). (merge c510928a25 hn/refs-debug-empty-prefix later to maint). (merge ddcb189d9d tb/bitmap-type-filter-comment-fix later to maint). (merge 878b399734 pb/submodule-recurse-doc later to maint). (merge 734283855f jk/config-env-doc later to maint). (merge 482e1488a9 ab/getcwd-test later to maint). (merge f0b922473e ar/doc-markup-fix later to maint). @ text @d1 1 a1 1 # $NetBSD: Makefile.version,v 1.96 2021/06/13 18:36:31 adam Exp $ d7 1 a7 1 GIT_VERSION= 2.33.0 @ 1.96 log @git: updated to 2.32.0 Git 2.32 Release Notes ====================== Backward compatibility notes ---------------------------- * ".gitattributes", ".gitignore", and ".mailmap" files that are symbolic links are ignored. * "git apply --3way" used to first attempt a straight application, and only fell back to the 3-way merge algorithm when the stright application failed. Starting with this version, the command will first try the 3-way merge algorithm and only when it fails (either resulting with conflict or the base versions of blobs are missing), falls back to the usual patch application. Updates since v2.31 ------------------- UI, Workflows & Features * It does not make sense to make ".gitattributes", ".gitignore" and ".mailmap" symlinks, as they are supposed to be usable from the object store (think: bare repositories where HEAD:.mailmap etc. are used). When these files are symbolic links, we used to read the contents of the files pointed by them by mistake, which has been corrected. * "git stash show" learned to optionally show untracked part of the stash. * "git log --format='...'" learned "%(describe)" placeholder. * "git repack" so far has been only capable of repacking everything under the sun into a single pack (or split by size). A cleverer strategy to reduce the cost of repacking a repository has been introduced. * The http codepath learned to let the credential layer to cache the password used to unlock a certificate that has successfully been used. * "git commit --fixup=", which was to tweak the changes made to the contents while keeping the original log message intact, learned "--fixup=(amend|reword):", that can be used to tweak both the message and the contents, and only the message, respectively. * "git send-email" learned to honor the core.hooksPath configuration. * "git format-patch -v" learned to allow a reroll count that is not an integer. * "git commit" learned "--trailer [=]" option; together with the interpret-trailers command, this will make it easier to support custom trailers. * "git clone --reject-shallow" option fails the clone as soon as we notice that we are cloning from a shallow repository. * A configuration variable has been added to force tips of certain refs to be given a reachability bitmap. * "gitweb" learned "e-mail privacy" feature to redact strings that look like e-mail addresses on various pages. * "git apply --3way" has always been "to fall back to 3-way merge only when straight application fails". Swap the order of falling back so that 3-way is always attempted first (only when the option is given, of course) and then straight patch application is used as a fallback when it fails. * "git apply" now takes "--3way" and "--cached" at the same time, and work and record results only in the index. * The command line completion (in contrib/) has learned that CHERRY_PICK_HEAD is a possible pseudo-ref. * Userdiff patterns for "Scheme" has been added. * "git log" learned "--diff-merges=