Git development
 help / color / mirror / Atom feed
* [PATCH v2] gitk: Update swedish translation.
From: Mikael Magnusson @ 2008-09-25 12:17 UTC (permalink / raw)
  To: Peter Krefting; +Cc: Paul Mackerras, Git Mailing List
In-Reply-To: <Pine.LNX.4.64.0809251247450.5683@ds9.cixit.se>

[-- Attachment #1: Type: TEXT/PLAIN, Size: 24540 bytes --]

Signed-off-by: Mikael Magnusson <mikachu@gmail.com>

---
This should be incorporating all the changes we discussed.

 po/sv.po |  462 +++++++++++++++++++++++++++++++++----------------------------
 1 files changed, 250 insertions(+), 212 deletions(-)

diff --git a/po/sv.po b/po/sv.po
index e1ecfb7..50a508e 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: sv\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-08-03 18:58+0200\n"
+"POT-Creation-Date: 2008-09-24 08:23+0200\n"
-"PO-Revision-Date: 2008-08-03 19:03+0200\n"
+"PO-Revision-Date: 2008-09-25 14:15+0200\n"
 "Last-Translator: Mikael Magnusson <mikachu@gmail.com>\n"
 "Language-Team: Swedish <sv@li.org>\n"
@@ -16,17 +16,25 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"

-#: gitk:102
+#: gitk:113
 msgid "Couldn't get list of unmerged files:"
 msgstr "Kunde inta hämta lista över ej sammanslagna filer:"

-#: gitk:329
+#: gitk:272
+msgid "Error parsing revisions:"
+msgstr "Fel vid tolkning av revisioner:"
+
+#: gitk:327
+msgid "Error executing --argscmd command:"
+msgstr "Fel vid körning av --argscmd-kommandot:"
+
+#: gitk:340
 msgid "No files selected: --merge specified but no files are unmerged."
 msgstr ""
 "Inga filer valdes: --merge angavs men det finns inga filer som inte har "
 "slagits samman."

-#: gitk:332
+#: gitk:343
 msgid ""
 "No files selected: --merge specified but no unmerged files are within file "
 "limit."
@@ -34,257 +42,261 @@ msgstr ""
 "Inga filer valdes: --merge angavs men det finns inga filer inom "
 "filbegränsningen."

-#: gitk:354
+#: gitk:365 gitk:503
 msgid "Error executing git log:"
 msgstr "Fel vid körning av git log:"

-#: gitk:369
+#: gitk:378
 msgid "Reading"
 msgstr "Läser"

-#: gitk:400 gitk:3356
+#: gitk:438 gitk:3433
 msgid "Reading commits..."
 msgstr "Läser incheckningar..."

-#: gitk:403 gitk:1480 gitk:3359
+#: gitk:441 gitk:1528 gitk:3436
 msgid "No commits selected"
 msgstr "Inga incheckningar markerade"

-#: gitk:1358
+#: gitk:1399
 msgid "Can't parse git log output:"
 msgstr "Kan inte tolka utdata från git log:"

-#: gitk:1557
+#: gitk:1605
 msgid "No commit information available"
 msgstr "Ingen incheckningsinformation är tillgänglig"

-#: gitk:1654 gitk:1676 gitk:3150 gitk:7620 gitk:9149 gitk:9317
+#: gitk:1709 gitk:1731 gitk:3230 gitk:7701 gitk:9230 gitk:9398
 msgid "OK"
 msgstr "OK"

-#: gitk:1678 gitk:3151 gitk:7296 gitk:7367 gitk:7470 gitk:7516 gitk:7622
-#: gitk:9150 gitk:9318
+#: gitk:1733 gitk:3231 gitk:7377 gitk:7448 gitk:7551 gitk:7597 gitk:7703
+#: gitk:9231 gitk:9399
 msgid "Cancel"
 msgstr "Avbryt"

-#: gitk:1716
+#: gitk:1771
 msgid "File"
 msgstr "Arkiv"

-#: gitk:1718
+#: gitk:1773
 msgid "Update"
 msgstr "Uppdatera"

-#: gitk:1719
+#: gitk:1774
 msgid "Reload"
 msgstr "Ladda om"

-#: gitk:1720
+#: gitk:1775
 msgid "Reread references"
 msgstr "Läs om referenser"

-#: gitk:1721
+#: gitk:1776
 msgid "List references"
 msgstr "Visa referenser"

-#: gitk:1722
+#: gitk:1777
 msgid "Quit"
 msgstr "Avsluta"

-#: gitk:1724
+#: gitk:1779
 msgid "Edit"
 msgstr "Redigera"

-#: gitk:1725
+#: gitk:1780
 msgid "Preferences"
 msgstr "Inställningar"

-#: gitk:1728 gitk:3087
+#: gitk:1783 gitk:3167
 msgid "View"
 msgstr "Visa"

-#: gitk:1729
+#: gitk:1784
 msgid "New view..."
 msgstr "Ny vy..."

-#: gitk:1730 gitk:3298 gitk:9932
+#: gitk:1785 gitk:3378 gitk:10030
 msgid "Edit view..."
 msgstr "Ändra vy..."

-#: gitk:1732 gitk:3299 gitk:9933
+#: gitk:1787 gitk:3379 gitk:10031
 msgid "Delete view"
 msgstr "Ta bort vy"

-#: gitk:1734
+#: gitk:1789
 msgid "All files"
 msgstr "Alla filer"

-#: gitk:1738
+#: gitk:1793
 msgid "Help"
 msgstr "Hjälp"

-#: gitk:1739 gitk:2399
+#: gitk:1794 gitk:2458
 msgid "About gitk"
 msgstr "Om gitk"

-#: gitk:1740
+#: gitk:1795
 msgid "Key bindings"
 msgstr "Tangentbordsbindningar"

-#: gitk:1797
+#: gitk:1852
 msgid "SHA1 ID: "
 msgstr "SHA1-id: "

-#: gitk:1828
+#: gitk:1883
 msgid "Row"
 msgstr "Rad"

-#: gitk:1859
+#: gitk:1914
 msgid "Find"
 msgstr "Sök"

-#: gitk:1860
+#: gitk:1915
 msgid "next"
 msgstr "nästa"

-#: gitk:1861
+#: gitk:1916
 msgid "prev"
 msgstr "föreg"

-#: gitk:1862
+#: gitk:1917
 msgid "commit"
 msgstr "incheckning"

-#: gitk:1865 gitk:1867 gitk:3511 gitk:3534 gitk:3558 gitk:5441 gitk:5512
+#: gitk:1920 gitk:1922 gitk:3588 gitk:3611 gitk:3635 gitk:5521 gitk:5592
 msgid "containing:"
 msgstr "som innehåller:"

-#: gitk:1868 gitk:2866 gitk:2871 gitk:3586
+#: gitk:1923 gitk:2925 gitk:2930 gitk:3663
 msgid "touching paths:"
 msgstr "som rör sökväg:"

-#: gitk:1869 gitk:3591
+#: gitk:1924 gitk:3668
 msgid "adding/removing string:"
 msgstr "som lägger/till tar bort sträng:"

-#: gitk:1878 gitk:1880
+#: gitk:1933 gitk:1935
 msgid "Exact"
 msgstr "Exakt"

-#: gitk:1880 gitk:3667 gitk:5409
+#: gitk:1935 gitk:3744 gitk:5489
 msgid "IgnCase"
 msgstr "IgnVersaler"

-#: gitk:1880 gitk:3560 gitk:3665 gitk:5405
+#: gitk:1935 gitk:3637 gitk:3742 gitk:5485
 msgid "Regexp"
 msgstr "Reg.uttr."

-#: gitk:1882 gitk:1883 gitk:3686 gitk:3716 gitk:3723 gitk:5532 gitk:5599
+#: gitk:1937 gitk:1938 gitk:3763 gitk:3793 gitk:3800 gitk:5612 gitk:5679
 msgid "All fields"
 msgstr "Alla fält"

-#: gitk:1883 gitk:3684 gitk:3716 gitk:5471
+#: gitk:1938 gitk:3761 gitk:3793 gitk:5551
 msgid "Headline"
 msgstr "Rubrik"

-#: gitk:1884 gitk:3684 gitk:5471 gitk:5599 gitk:6000
+#: gitk:1939 gitk:3761 gitk:5551 gitk:5679 gitk:6080
 msgid "Comments"
 msgstr "Kommentarer"

-#: gitk:1884 gitk:3684 gitk:3688 gitk:3723 gitk:5471 gitk:5936 gitk:7142
-#: gitk:7157
+#: gitk:1939 gitk:3761 gitk:3765 gitk:3800 gitk:5551 gitk:6016 gitk:7223
+#: gitk:7238
 msgid "Author"
 msgstr "Författare"

-#: gitk:1884 gitk:3684 gitk:5471 gitk:5938
+#: gitk:1939 gitk:3761 gitk:5551 gitk:6018
 msgid "Committer"
 msgstr "Incheckare"

-#: gitk:1913
+#: gitk:1968
 msgid "Search"
 msgstr "Sök"

-#: gitk:1920
+#: gitk:1975
 msgid "Diff"
 msgstr "Diff"

-#: gitk:1922
+#: gitk:1977
 msgid "Old version"
 msgstr "Gammal version"

-#: gitk:1924
+#: gitk:1979
 msgid "New version"
 msgstr "Ny version"

-#: gitk:1926
+#: gitk:1981
 msgid "Lines of context"
 msgstr "Rader sammanhang"

-#: gitk:1936
+#: gitk:1991
 msgid "Ignore space change"
 msgstr "Ignorera ändringar i blanksteg"

-#: gitk:1994
+#: gitk:2049
 msgid "Patch"
 msgstr "Patch"

-#: gitk:1996
+#: gitk:2051
 msgid "Tree"
 msgstr "Träd"

-#: gitk:2121 gitk:2136 gitk:7211
+#: gitk:2178 gitk:2193 gitk:7292
 msgid "Diff this -> selected"
 msgstr "Diff denna -> markerad"

-#: gitk:2123 gitk:2138 gitk:7212
+#: gitk:2180 gitk:2195 gitk:7293
 msgid "Diff selected -> this"
 msgstr "Diff markerad -> denna"

-#: gitk:2125 gitk:2140 gitk:7213
+#: gitk:2182 gitk:2197 gitk:7294
 msgid "Make patch"
 msgstr "Skapa patch"

-#: gitk:2126 gitk:7351
+#: gitk:2183 gitk:7432
 msgid "Create tag"
 msgstr "Skapa tagg"

-#: gitk:2127 gitk:7450
+#: gitk:2184 gitk:7531
 msgid "Write commit to file"
 msgstr "Skriv incheckning till fil"

-#: gitk:2128 gitk:7504
+#: gitk:2185 gitk:7585
 msgid "Create new branch"
 msgstr "Skapa ny gren"

-#: gitk:2129
+#: gitk:2186
 msgid "Cherry-pick this commit"
 msgstr "Plocka denna incheckning"

-#: gitk:2131
+#: gitk:2188
 msgid "Reset HEAD branch to here"
 msgstr "Återställ HEAD-grenen hit"

-#: gitk:2147
+#: gitk:2204
 msgid "Check out this branch"
 msgstr "Checka ut denna gren"

-#: gitk:2149
+#: gitk:2206
 msgid "Remove this branch"
 msgstr "Ta bort denna gren"

-#: gitk:2155
+#: gitk:2212
 msgid "Highlight this too"
 msgstr "Markera även detta"

-#: gitk:2157
+#: gitk:2214
 msgid "Highlight this only"
 msgstr "Markera bara detta"

-#: gitk:2159
+#: gitk:2216
 msgid "External diff"
 msgstr "Extern diff"

-#: gitk:2400
+#: gitk:2218
+msgid "Blame parent commit"
+msgstr "Annotera föregående incheckning"
+
+#: gitk:2459
 msgid ""
 "\n"
 "Gitk - a commit viewer for git\n"
@@ -300,427 +312,453 @@ msgstr ""
 "\n"
 "Använd och vidareförmedla enligt villkoren i GNU General Public License"

-#: gitk:2408 gitk:2469 gitk:7799
+#: gitk:2467 gitk:2528 gitk:7880
 msgid "Close"
 msgstr "Stäng"

-#: gitk:2427
+#: gitk:2486
 msgid "Gitk key bindings"
 msgstr "Tangentbordsbindningar för Gitk"

-#: gitk:2429
+#: gitk:2488
 msgid "Gitk key bindings:"
 msgstr "Tangentbordsbindningar för Gitk:"

-#: gitk:2431
+#: gitk:2490
 #, tcl-format
 msgid "<%s-Q>\t\tQuit"
 msgstr "<%s-Q>\t\tAvsluta"

-#: gitk:2432
+#: gitk:2491
 msgid "<Home>\t\tMove to first commit"
 msgstr "<Home>\t\tGå till första incheckning"

-#: gitk:2433
+#: gitk:2492
 msgid "<End>\t\tMove to last commit"
 msgstr "<End>\t\tGå till sista incheckning"

-#: gitk:2434
+#: gitk:2493
 msgid "<Up>, p, i\tMove up one commit"
 msgstr "<Upp>, p, i\tGå en incheckning upp"

-#: gitk:2435
+#: gitk:2494
 msgid "<Down>, n, k\tMove down one commit"
 msgstr "<Ned>, n, k\tGå en incheckning ned"

-#: gitk:2436
+#: gitk:2495
 msgid "<Left>, z, j\tGo back in history list"
 msgstr "<Vänster>, z, j\tGå bakåt i historiken"

-#: gitk:2437
+#: gitk:2496
 msgid "<Right>, x, l\tGo forward in history list"
 msgstr "<Höger>, x, l\tGå framåt i historiken"

-#: gitk:2438
+#: gitk:2497
 msgid "<PageUp>\tMove up one page in commit list"
 msgstr "<PageUp>\tGå upp en sida i incheckningslistan"

-#: gitk:2439
+#: gitk:2498
 msgid "<PageDown>\tMove down one page in commit list"
 msgstr "<PageDown>\tGå ned en sida i incheckningslistan"

-#: gitk:2440
+#: gitk:2499
 #, tcl-format
 msgid "<%s-Home>\tScroll to top of commit list"
 msgstr "<%s-Home>\tRulla till början av incheckningslistan"

-#: gitk:2441
+#: gitk:2500
 #, tcl-format
 msgid "<%s-End>\tScroll to bottom of commit list"
 msgstr "<%s-End>\tRulla till slutet av incheckningslistan"

-#: gitk:2442
+#: gitk:2501
 #, tcl-format
 msgid "<%s-Up>\tScroll commit list up one line"
 msgstr "<%s-Upp>\tRulla incheckningslistan upp ett steg"

-#: gitk:2443
+#: gitk:2502
 #, tcl-format
 msgid "<%s-Down>\tScroll commit list down one line"
 msgstr "<%s-Ned>\tRulla incheckningslistan ned ett steg"

-#: gitk:2444
+#: gitk:2503
 #, tcl-format
 msgid "<%s-PageUp>\tScroll commit list up one page"
 msgstr "<%s-PageUp>\tRulla incheckningslistan upp en sida"

-#: gitk:2445
+#: gitk:2504
 #, tcl-format
 msgid "<%s-PageDown>\tScroll commit list down one page"
 msgstr "<%s-PageDown>\tRulla incheckningslistan ned en sida"

-#: gitk:2446
+#: gitk:2505
 msgid "<Shift-Up>\tFind backwards (upwards, later commits)"
 msgstr "<Skift-Upp>\tSök bakåt (uppåt, senare incheckningar)"

-#: gitk:2447
+#: gitk:2506
 msgid "<Shift-Down>\tFind forwards (downwards, earlier commits)"
 msgstr "<Skift-Ned>\tSök framåt (nedåt, tidigare incheckningar)"

-#: gitk:2448
+#: gitk:2507
 msgid "<Delete>, b\tScroll diff view up one page"
 msgstr "<Delete>, b\tRulla diffvisningen upp en sida"

-#: gitk:2449
+#: gitk:2508
 msgid "<Backspace>\tScroll diff view up one page"
 msgstr "<Baksteg>\tRulla diffvisningen upp en sida"

-#: gitk:2450
+#: gitk:2509
 msgid "<Space>\t\tScroll diff view down one page"
 msgstr "<Blanksteg>\tRulla diffvisningen ned en sida"

-#: gitk:2451
+#: gitk:2510
 msgid "u\t\tScroll diff view up 18 lines"
 msgstr "u\t\tRulla diffvisningen upp 18 rader"

-#: gitk:2452
+#: gitk:2511
 msgid "d\t\tScroll diff view down 18 lines"
 msgstr "d\t\tRulla diffvisningen ned 18 rader"

-#: gitk:2453
+#: gitk:2512
 #, tcl-format
 msgid "<%s-F>\t\tFind"
 msgstr "<%s-F>\t\tSök"

-#: gitk:2454
+#: gitk:2513
 #, tcl-format
 msgid "<%s-G>\t\tMove to next find hit"
 msgstr "<%s-G>\t\tGå till nästa sökträff"

-#: gitk:2455
+#: gitk:2514
 msgid "<Return>\tMove to next find hit"
 msgstr "<Return>\t\tGå till nästa sökträff"

-#: gitk:2456
+#: gitk:2515
 msgid "/\t\tMove to next find hit, or redo find"
 msgstr "/\t\tGå till nästa sökträff, eller sök på nytt"

-#: gitk:2457
+#: gitk:2516
 msgid "?\t\tMove to previous find hit"
 msgstr "?\t\tGå till föregående sökträff"

-#: gitk:2458
+#: gitk:2517
 msgid "f\t\tScroll diff view to next file"
 msgstr "f\t\tRulla diffvisningen till nästa fil"

-#: gitk:2459
+#: gitk:2518
 #, tcl-format
 msgid "<%s-S>\t\tSearch for next hit in diff view"
 msgstr "<%s-S>\t\tGå till nästa sökträff i diffvisningen"

-#: gitk:2460
+#: gitk:2519
 #, tcl-format
 msgid "<%s-R>\t\tSearch for previous hit in diff view"
 msgstr "<%s-R>\t\tGå till föregående sökträff i diffvisningen"

-#: gitk:2461
+#: gitk:2520
 #, tcl-format
 msgid "<%s-KP+>\tIncrease font size"
 msgstr "<%s-Num+>\tÖka teckenstorlek"

-#: gitk:2462
+#: gitk:2521
 #, tcl-format
 msgid "<%s-plus>\tIncrease font size"
 msgstr "<%s-plus>\tÖka teckenstorlek"

-#: gitk:2463
+#: gitk:2522
 #, tcl-format
 msgid "<%s-KP->\tDecrease font size"
 msgstr "<%s-Num->\tMinska teckenstorlek"

-#: gitk:2464
+#: gitk:2523
 #, tcl-format
 msgid "<%s-minus>\tDecrease font size"
 msgstr "<%s-minus>\tMinska teckenstorlek"

-#: gitk:2465
+#: gitk:2524
 msgid "<F5>\t\tUpdate"
 msgstr "<F5>\t\tUppdatera"

-#: gitk:3091
+#: gitk:2940
+#, tcl-format
+msgid "Error getting \"%s\" from %s:"
+msgstr "Fel vid hämtning av \"%s\" från %s:"
+
+#: gitk:2997 gitk:3006
+#, tcl-format
+msgid "Error creating temporary directory %s:"
+msgstr "Fel när tillfällig katalog %s skulle skapas:"
+
+#: gitk:3019
+msgid "command failed:"
+msgstr "kommando misslyckades:"
+
+#: gitk:3039
+msgid "No such commit"
+msgstr "Ingen sådan incheckning finns"
+
+#: gitk:3044
+msgid "git gui blame: command failed:"
+msgstr "git gui blame: kommandot misslyckades:"
+
+#: gitk:3053
+msgid "External diff viewer failed:"
+msgstr "Externt diff-verktyg misslyckades:"
+
+#: gitk:3171
 msgid "Gitk view definition"
 msgstr "Definition av Gitk-vy"

-#: gitk:3116
+#: gitk:3196
 msgid "Name"
 msgstr "Namn"

-#: gitk:3119
+#: gitk:3199
 msgid "Remember this view"
 msgstr "Spara denna vy"

-#: gitk:3123
+#: gitk:3203
 msgid "Commits to include (arguments to git log):"
 msgstr "Incheckningar att ta med (argument till git log):"

-#: gitk:3130
+#: gitk:3210
 msgid "Command to generate more commits to include:"
 msgstr "Kommando för att generera fler incheckningar att ta med:"

-#: gitk:3137
+#: gitk:3217
 msgid "Enter files and directories to include, one per line:"
 msgstr "Ange filer och kataloger att ta med, en per rad:"

-#: gitk:3184
+#: gitk:3264
 msgid "Error in commit selection arguments:"
 msgstr "Fel i argument för val av incheckningar:"

-#: gitk:3238 gitk:3290 gitk:3736 gitk:3750 gitk:4951 gitk:9896 gitk:9897
+#: gitk:3318 gitk:3370 gitk:3813 gitk:3827 gitk:5031 gitk:9994 gitk:9995
 msgid "None"
 msgstr "Inget"

-#: gitk:3684 gitk:5471 gitk:7144 gitk:7159
+#: gitk:3761 gitk:5551 gitk:7225 gitk:7240
 msgid "Date"
 msgstr "Datum"

-#: gitk:3684 gitk:5471
+#: gitk:3761 gitk:5551
 msgid "CDate"
 msgstr "Skapat datum"

-#: gitk:3833 gitk:3838
+#: gitk:3910 gitk:3915
 msgid "Descendant"
 msgstr "Avkomling"

-#: gitk:3834
+#: gitk:3911
 msgid "Not descendant"
 msgstr "Inte avkomling"

-#: gitk:3841 gitk:3846
+#: gitk:3918 gitk:3923
 msgid "Ancestor"
 msgstr "Förfader"

-#: gitk:3842
+#: gitk:3919
 msgid "Not ancestor"
 msgstr "Inte förfader"

-#: gitk:4078
+#: gitk:4158
 msgid "Local changes checked in to index but not committed"
 msgstr "Lokala ändringar sparade i indexet men inte incheckade"

-#: gitk:4111
+#: gitk:4191
 msgid "Local uncommitted changes, not checked in to index"
 msgstr "Lokala ändringar, ej sparade i indexet"

-#: gitk:5440
+#: gitk:5520
 msgid "Searching"
 msgstr "Söker"

-#: gitk:5940
+#: gitk:6020
 msgid "Tags:"
 msgstr "Taggar:"

-#: gitk:5957 gitk:5963 gitk:7137
+#: gitk:6037 gitk:6043 gitk:7218
 msgid "Parent"
 msgstr "Förälder"

-#: gitk:5968
+#: gitk:6048
 msgid "Child"
 msgstr "Barn"

-#: gitk:5977
+#: gitk:6057
 msgid "Branch"
 msgstr "Gren"

-#: gitk:5980
+#: gitk:6060
 msgid "Follows"
 msgstr "Följer"

-#: gitk:5983
+#: gitk:6063
 msgid "Precedes"
 msgstr "Föregår"

-#: gitk:6267
+#: gitk:6347
 msgid "Error getting merge diffs:"
 msgstr "Fel vid hämtning av sammanslagningsdiff:"

-#: gitk:6970
+#: gitk:7051
 msgid "Goto:"
 msgstr "Gå till:"

-#: gitk:6972
+#: gitk:7053
 msgid "SHA1 ID:"
 msgstr "SHA1-id:"

-#: gitk:6991
+#: gitk:7072
 #, tcl-format
 msgid "Short SHA1 id %s is ambiguous"
 msgstr "Förkortat SHA1-id %s är tvetydigt"

-#: gitk:7003
+#: gitk:7084
 #, tcl-format
 msgid "SHA1 id %s is not known"
 msgstr "SHA-id:t %s är inte känt"

-#: gitk:7005
+#: gitk:7086
 #, tcl-format
 msgid "Tag/Head %s is not known"
 msgstr "Tagg/huvud %s är okänt"

-#: gitk:7147
+#: gitk:7228
 msgid "Children"
 msgstr "Barn"

-#: gitk:7204
+#: gitk:7285
 #, tcl-format
 msgid "Reset %s branch to here"
 msgstr "Återställ grenen %s hit"

-#: gitk:7206
+#: gitk:7287
 msgid "Detached head: can't reset"
 msgstr "Frånkopplad head: kan inte återställa"

-#: gitk:7238
+#: gitk:7319
 msgid "Top"
 msgstr "Topp"

-#: gitk:7239
+#: gitk:7320
 msgid "From"
 msgstr "Från"

-#: gitk:7244
+#: gitk:7325
 msgid "To"
 msgstr "Till"

-#: gitk:7267
+#: gitk:7348
 msgid "Generate patch"
 msgstr "Generera patch"

-#: gitk:7269
+#: gitk:7350
 msgid "From:"
 msgstr "Från:"

-#: gitk:7278
+#: gitk:7359
 msgid "To:"
 msgstr "Till:"

-#: gitk:7287
+#: gitk:7368
 msgid "Reverse"
 msgstr "Vänd"

-#: gitk:7289 gitk:7464
+#: gitk:7370 gitk:7545
 msgid "Output file:"
 msgstr "Utdatafil:"

-#: gitk:7295
+#: gitk:7376
 msgid "Generate"
 msgstr "Generera"

-#: gitk:7331
+#: gitk:7412
 msgid "Error creating patch:"
 msgstr "Fel vid generering av patch:"

-#: gitk:7353 gitk:7452 gitk:7506
+#: gitk:7434 gitk:7533 gitk:7587
 msgid "ID:"
 msgstr "Id:"

-#: gitk:7362
+#: gitk:7443
 msgid "Tag name:"
 msgstr "Taggnamn:"

-#: gitk:7366 gitk:7515
+#: gitk:7447 gitk:7596
 msgid "Create"
 msgstr "Skapa"

-#: gitk:7381
+#: gitk:7462
 msgid "No tag name specified"
 msgstr "Inget taggnamn angavs"

-#: gitk:7385
+#: gitk:7466
 #, tcl-format
 msgid "Tag \"%s\" already exists"
 msgstr "Taggen \"%s\" finns redan"

-#: gitk:7391
+#: gitk:7472
 msgid "Error creating tag:"
-msgstr "Fel vid skapande av tagg:"
+msgstr "Fel n? tagg skulle skapas:"

-#: gitk:7461
+#: gitk:7542
 msgid "Command:"
 msgstr "Kommando:"

-#: gitk:7469
+#: gitk:7550
 msgid "Write"
 msgstr "Skriv"

-#: gitk:7485
+#: gitk:7566
 msgid "Error writing commit:"
 msgstr "Fel vid skrivning av incheckning:"

-#: gitk:7511
+#: gitk:7592
 msgid "Name:"
 msgstr "Namn:"

-#: gitk:7530
+#: gitk:7611
 msgid "Please specify a name for the new branch"
 msgstr "Ange ett namn för den nya grenen"

-#: gitk:7559
+#: gitk:7640
 #, tcl-format
 msgid "Commit %s is already included in branch %s -- really re-apply it?"
 msgstr ""
 "Incheckningen %s finns redan på grenen %s -- skall den verkligen appliceras "
 "på nytt?"

-#: gitk:7564
+#: gitk:7645
 msgid "Cherry-picking"
 msgstr "Plockar"

-#: gitk:7576
+#: gitk:7657
 msgid "No changes committed"
 msgstr "Inga ändringar incheckade"

-#: gitk:7601
+#: gitk:7682
 msgid "Confirm reset"
 msgstr "Bekräfta återställning"

-#: gitk:7603
+#: gitk:7684
 #, tcl-format
 msgid "Reset branch %s to %s?"
 msgstr "Återställa grenen %s till %s?"

-#: gitk:7607
+#: gitk:7688
 msgid "Reset type:"
 msgstr "Typ av återställning:"

-#: gitk:7611
+#: gitk:7692
 msgid "Soft: Leave working tree and index untouched"
 msgstr "Mjuk: Rör inte utcheckning och index"

-#: gitk:7614
+#: gitk:7695
 msgid "Mixed: Leave working tree untouched, reset index"
 msgstr "Blandad: Rör inte utcheckning, återställ index"

-#: gitk:7617
+#: gitk:7698
 msgid ""
 "Hard: Reset working tree and index\n"
 "(discard ALL local changes)"
@@ -728,19 +766,19 @@ msgstr ""
 "Hård: Återställ utcheckning och index\n"
 "(förkastar ALLA lokala ändringar)"

-#: gitk:7633
+#: gitk:7714
 msgid "Resetting"
 msgstr "Återställer"

-#: gitk:7690
+#: gitk:7771
 msgid "Checking out"
 msgstr "Checkar ut"

-#: gitk:7741
+#: gitk:7822
 msgid "Cannot delete the currently checked-out branch"
 msgstr "Kan inte ta bort den just nu utcheckade grenen"

-#: gitk:7747
+#: gitk:7828
 #, tcl-format
 msgid ""
 "The commits on branch %s aren't on any other branch.\n"
@@ -749,16 +787,16 @@ msgstr ""
 "Incheckningarna på grenen %s existerar inte på någon annan gren.\n"
 "Vill du verkligen ta bort grenen %s?"

-#: gitk:7778
+#: gitk:7859
 #, tcl-format
 msgid "Tags and heads: %s"
 msgstr "Taggar och huvuden: %s"

-#: gitk:7792
+#: gitk:7873
 msgid "Filter"
 msgstr "Filter"

-#: gitk:8086
+#: gitk:8167
 msgid ""
 "Error reading commit topology information; branch and preceding/following "
 "tag information will be incomplete."
@@ -766,125 +804,125 @@ msgstr ""
 "Fel vid läsning av information om incheckningstopologi; information om "
 "grenar och föregående/senare taggar kommer inte vara komplett."

-#: gitk:9072
+#: gitk:9153
 msgid "Tag"
 msgstr "Tagg"

-#: gitk:9072
+#: gitk:9153
 msgid "Id"
 msgstr "Id"

-#: gitk:9118
+#: gitk:9199
 msgid "Gitk font chooser"
 msgstr "Teckensnittsväljare för Gitk"

-#: gitk:9135
+#: gitk:9216
 msgid "B"
 msgstr "F"

-#: gitk:9138
+#: gitk:9219
 msgid "I"
 msgstr "K"

-#: gitk:9231
+#: gitk:9312
 msgid "Gitk preferences"
 msgstr "Inställningar för Gitk"

-#: gitk:9232
+#: gitk:9313
 msgid "Commit list display options"
 msgstr "Alternativ för incheckningslistvy"

-#: gitk:9235
+#: gitk:9316
 msgid "Maximum graph width (lines)"
 msgstr "Maximal grafbredd (rader)"

-#: gitk:9239
+#: gitk:9320
 #, tcl-format
 msgid "Maximum graph width (% of pane)"
 msgstr "Maximal grafbredd (% av ruta)"

-#: gitk:9244
+#: gitk:9325
 msgid "Show local changes"
 msgstr "Visa lokala ändringar"

-#: gitk:9249
+#: gitk:9330
 msgid "Auto-select SHA1"
 msgstr "Välj SHA1 automatiskt"

-#: gitk:9254
+#: gitk:9335
 msgid "Diff display options"
 msgstr "Alternativ för diffvy"

-#: gitk:9256
+#: gitk:9337
 msgid "Tab spacing"
 msgstr "Blanksteg för tabulatortecken"

-#: gitk:9260
+#: gitk:9341
 msgid "Display nearby tags"
 msgstr "Visa närliggande taggar"

-#: gitk:9265
+#: gitk:9346
 msgid "Limit diffs to listed paths"
 msgstr "Begränsa diff till listade sökvägar"

-#: gitk:9272
+#: gitk:9353
 msgid "External diff tool"
 msgstr "Externt diff-verktyg"

-#: gitk:9274
+#: gitk:9355
 msgid "Choose..."
 msgstr "Välj..."

-#: gitk:9279
+#: gitk:9360
 msgid "Colors: press to choose"
 msgstr "Färger: tryck för att välja"

-#: gitk:9282
+#: gitk:9363
 msgid "Background"
 msgstr "Bakgrund"

-#: gitk:9286
+#: gitk:9367
 msgid "Foreground"
 msgstr "Förgrund"

-#: gitk:9290
+#: gitk:9371
 msgid "Diff: old lines"
 msgstr "Diff: gamla rader"

-#: gitk:9295
+#: gitk:9376
 msgid "Diff: new lines"
 msgstr "Diff: nya rader"

-#: gitk:9300
+#: gitk:9381
 msgid "Diff: hunk header"
 msgstr "Diff: delhuvud"

-#: gitk:9306
+#: gitk:9387
 msgid "Select bg"
 msgstr "Markerad bakgrund"

-#: gitk:9310
+#: gitk:9391
 msgid "Fonts: press to choose"
 msgstr "Teckensnitt: tryck för att välja"

-#: gitk:9312
+#: gitk:9393
 msgid "Main font"
 msgstr "Huvudteckensnitt"

-#: gitk:9313
+#: gitk:9394
 msgid "Diff display font"
 msgstr "Teckensnitt för diffvisning"

-#: gitk:9314
+#: gitk:9395
 msgid "User interface font"
 msgstr "Teckensnitt för användargränssnitt"

-#: gitk:9339
+#: gitk:9420
 #, tcl-format
 msgid "Gitk: choose color for %s"
 msgstr "Gitk: välj färg för %s"

-#: gitk:9720
+#: gitk:9801
 msgid ""
 "Sorry, gitk cannot run with this version of Tcl/Tk.\n"
 " Gitk requires at least Tcl/Tk 8.4."
@@ -892,24 +930,24 @@ msgstr ""
 "Gitk kan tyvärr inte köra med denna version av Tcl/Tk.\n"
 " Gitk kräver åtminstone Tcl/Tk 8.4."

-#: gitk:9812
+#: gitk:9900
 msgid "Cannot find a git repository here."
 msgstr "Hittar inget gitk-arkiv här."

-#: gitk:9816
+#: gitk:9904
 #, tcl-format
 msgid "Cannot find the git directory \"%s\"."
 msgstr "Hittar inte git-katalogen \"%s\"."

-#: gitk:9853
+#: gitk:9951
 #, tcl-format
 msgid "Ambiguous argument '%s': both revision and filename"
 msgstr "Tvetydigt argument \"%s\": både revision och filnamn"

-#: gitk:9865
+#: gitk:9963
 msgid "Bad arguments to gitk:"
 msgstr "Felaktiga argument till gitk:"

-#: gitk:9925
+#: gitk:10023
 msgid "Command line"
 msgstr "Kommandorad"
-- 
1.6.0.2.GIT


On Thu, 25 Sep 2008, Peter Krefting wrote:

> Mikael Magnusson:
>
>> Want me to change that one too?
>
> Yeah, most probably should do that, if we change the other.
>
>> I personally think "Fel vid skapande av ~"is better than "Fel när ~
>> skulle skapas" but we should probably decide on one or the other :).
>
> as long as it is consistent, it should probably be good enough.
>
>> -- Mikael Magnusson???{.n?+???????+%?????ÿÿ\x17??w??{.n?+???????^n?r??z?\x1a??h????&???z??z?ÿÿ?+??+zf???h???~????i????????z_?\x0f?j:+v???)ÿÿ?m
>
> Something weird is happening with your e-mail messages, not sure if it
> is on your end or mine...

I'll try alpine instead.

--
Mikael Magnusson

^ permalink raw reply related

* Re: [PATCH] git-submodule: remove unnecessary exits when calling resolve_relative_url
From: Johannes Sixt @ 2008-09-25 12:19 UTC (permalink / raw)
  To: David Aguilar; +Cc: gitster, git, johan, spearce, mlevedahl
In-Reply-To: <17c3c33dd7aa6803d7ac046f3e4dc0d5bb4c7234.1222341013.git.davvid@gmail.com>

David Aguilar schrieb:
> resolve_relative_url calls die() when no remote url exists so these calls to
> exit can be removed.
...
> @@ -155,7 +155,7 @@ cmd_add()
>  	case "$repo" in
>  	./*|../*)
>  		# dereference source url relative to parent's url
> -		realrepo=$(resolve_relative_url "$repo") || exit
> +		realrepo=$(resolve_relative_url "$repo")
>  		;;

Did you test it? The command inside $(...) is run in its own sub-process,
therefore, the die() does not exit the caller, just the sub-process, and
the || exit *is* required.

BTW, I think that || exit is sufficient; you don't need to add another
error message - the one that resolve_relative_url() prints is sufficient.

-- Hannes

^ permalink raw reply

* Re: [RFC] gitweb wishlist and TODO list
From: Jakub Narebski @ 2008-09-25 12:23 UTC (permalink / raw)
  To: Pedro Melo; +Cc: git, Petr Baudis
In-Reply-To: <CCF9B7B7-4D85-4704-9363-2CE41B048828@simplicidade.org>

Pedro Melo wrote:
> On Sep 25, 2008, at 11:30 AM, Jakub Narebski wrote:
> 
> > * Support for FastCGI (via CGI::Fast or FCGI).
> >
> >  Unfortunately I don't use FastCGI.  This has to be done in a very
> >  un-intruisive way, and without performance penalties for "ordinary"
> >  CGI and mod_perl.
> >
> >  Suggested: input reading and validation refactoring.
> 
> Is it ok to require CPAN modules? If yes, then using HTTP::Engine as a  
> base could be helpful here.

No, it is not.  Some gitweb installations (kernel.org, IIRC) are on
tightly managed machines, where installation is severely restricted.
If it is distributed together with Perl package it is best, if it can
be found in distribution packages it is good, if it can be found in
distribution extras it is quite good, if it can be found in trusted
package repository, it is manageable.  Installing untested packages
from CPAN is usually out of the question.

That said...
 
> It supports standalone deployments as well as FastCGI, CGI, mod_perl,  
> POE and others.
> 
> And it acts as a very simple HTTP-layer, without any "framework"
> logic. 

...if we could make it conditional on HTTP::Engine being installed,
and fallback on current code easily, it could be done, I think, without
problems.

Thanks for the pointer. 

> > * Committags support
> >
> >   Support expansion of "tags" in commit messages, like gitweb now
> >   does for (shortened) SHA-1, converting them to 'object' view link.
> >   It should be done in a way to make it easy configurable,
> >   preferebly having to configure only variable part, and not having
> >   to write whole replacement rule.
> >
> >   Possible committags include: _BUG(n)_, bug _#n_, _FEATURE(n),
> >   Message-Id, plain text URL e.g. _http://repo.or.cz_, spam  
> >   protecting of  email addresses, "rich text formatting" like *bold*
> >   and _underline_, syntax highlighting of signoff lines.
> 
> If this part is modular, we can even use a full blown text markup  
> tool, like Markdown or Textile, to generate the HTML version of the  
> commits.

I don't think it is a good idea.  The main target of git commit
messages is command line, so fixed width format is expected.  Commit
mesages are also shown in commit tools and history viewers (git-gui,
gitk, QGit) and in intergration with IDE/editors (KDevelop, Eclipse,
Emacs, Vim).  Unless unprocessed code doesn't loose anything, I think
that advanced markup is a bad, bad idea.

-- 
Jakub Narebski
Poland

^ permalink raw reply

* Re: [RFC/PATCH] remove vim syntax highlighting in favor of upstream
From: SZEDER Gábor @ 2008-09-25 12:48 UTC (permalink / raw)
  To: Jeff King, vim; +Cc: Shawn O. Pearce, git
In-Reply-To: <20080924195658.GB6816@neumann>

Hi,

OK, so I'm complaining a bit.

On Wed, Sep 24, 2008 at 09:56:58PM +0200, SZEDER Gábor wrote:
> +To install:
> +
> +  1. Copy these files to vim's syntax directory $HOME/.vim/syntax
> +  2. Auto-detect the editing of various git-related filetypes:
> +	$ cat >>$HOME/.vimrc <<'EOF'
> +	autocmd BufNewFile,BufRead *.git/COMMIT_EDITMSG    setf gitcommit
> +	autocmd BufNewFile,BufRead *.git/config,.gitconfig setf gitconfig
> +	autocmd BufNewFile,BufRead git-rebase-todo         setf gitrebase
> +	autocmd BufNewFile,BufRead .msg.[0-9]*
> +		\ if getline(1) =~ '^From.*# This line is ignored.$' |
> +		\   setf gitsendemail |
> +		\ endif
> +	autocmd BufNewFile,BufRead *.git/**
> +		\ if getline(1) =~ '^\x\{40\}\>\|^ref: ' |
> +		\   setf git |
> +		\ endif
> +	EOF

There are issues with this second step.  If I append this code to my
.vimrc, then vim sometimes overrides the filetype with conf.

vim has a guessing rule for detecting conf files, which triggers if
one of the first five lines of the file begins with a '#'.  So if I
start to write a new commit message or I interactively rebase 4 or
less commits, then this rule triggers and vim overrides the git
filetype with filetype conf.  If I do a commit --amend with a long
enough original commit message or an interactive rebase with more than
4 commit, then this rule no more triggers and everything is fine.

But what's really puzzling is that if I insert the above code into
$VIMRUNTIME/filetype.vim (at the spot where it can be found in vim
7.2's filetype.vim), then everything works as expected, git filetypes
are never overridden.

This is not related to the changes in this patch.  git's original vim
syntax highlight for commit messages has the exact same behaviour.

The first step is OK: it doesn't matter whether I put git-related
syntax files under $HOME/.vim/syntax/ or under $VIMRUNTIME/syntax/.

I'm using vim 7.1.138 in Ubuntu 8.04.

Anyone have a clue?


Thanks,
Gábor

^ permalink raw reply

* Re: [PATCH] usage.c: remove unused functions
From: Petr Baudis @ 2008-09-25 12:48 UTC (permalink / raw)
  To: Thomas Rast; +Cc: Nanako Shiraishi, Junio C Hamano, git
In-Reply-To: <200809251348.42789.trast@student.ethz.ch>

On Thu, Sep 25, 2008 at 01:48:37PM +0200, Thomas Rast wrote:
> Nanako Shiraishi wrote:
> > This removes three functions that are not used anywhere.
> [...]
> > -void set_usage_routine(void (*routine)(const char *err) NORETURN)
> [...]
> > -void set_error_routine(void (*routine)(const char *err, va_list params))
> [...]
> > -void set_warn_routine(void (*routine)(const char *warn, va_list params))
> 
> These blame to the following commit:
> 
>   commit 39a3f5ea7c0352a530338d30d4e618f6b4db84e4
>   Author: Petr Baudis <pasky@suse.cz>
>   Date:   Sat Jun 24 04:34:38 2006 +0200
> 
>       Customizable error handlers
>       
>       This patch makes the usage(), die() and error() handlers customizable.
>       Nothing in the git code itself uses that but many other libgit users
>       (like Git.pm) will.
>   [...]
> 
> So apparently the intent was that they would only be used from outside
> Git.  I don't know whether anyone still plans to do that, but they're
> certainly not "just" unused.

I don't think it will be a big deal to remove these functions, though it
does feel like a little bit of a step backwards in the libgit efforts.
There are some programs that already link to Git, like CGit - I wonder
if some of them don't use them (CGit itself doesn't).

-- 
				Petr "Pasky" Baudis
People who take cold baths never have rheumatism, but they have
cold baths.

^ permalink raw reply

* Re: [PATCH] usage.c: remove unused functions
From: Jakub Narebski @ 2008-09-25 12:53 UTC (permalink / raw)
  To: git
In-Reply-To: <200809251348.42789.trast@student.ethz.ch>

Thomas Rast wrote:

> Nanako Shiraishi wrote:
>> This removes three functions that are not used anywhere.
> [...]
>> -void set_usage_routine(void (*routine)(const char *err) NORETURN)
> [...]
>> -void set_error_routine(void (*routine)(const char *err, va_list params))
> [...]
>> -void set_warn_routine(void (*routine)(const char *warn, va_list params))
> 
> These blame to the following commit:
> 
>   commit 39a3f5ea7c0352a530338d30d4e618f6b4db84e4
>   Author: Petr Baudis <pasky@suse.cz>
>   Date:   Sat Jun 24 04:34:38 2006 +0200
> 
>       Customizable error handlers
>       
>       This patch makes the usage(), die() and error() handlers customizable.
>       Nothing in the git code itself uses that but many other libgit users
>       (like Git.pm) will.
>   [...]
> 
> So apparently the intent was that they would only be used from outside
> Git.  I don't know whether anyone still plans to do that, but they're
> certainly not "just" unused.

By the way, those functions could be used to implement 
"git --silent <cmd>", which is equivalent of "git <cmd> 2>/dev/null"
(which you don't always can do easily).

-- 
Jakub Narebski
Warsaw, Poland
ShadeHawk on #git

^ permalink raw reply

* [ANNOUNCE] TopGit v0.4
From: Petr Baudis @ 2008-09-25 13:19 UTC (permalink / raw)
  To: git

  Hi!

  This is TopGit v0.4, continuing the mission of practical usability.
I have managed to somehow use this to actually manage a rather large
and non-trivial system of git-gui patches, recently submitted to git@.
(I send out the mail series using tg export --quilt and quilt mail
so far though, and I'm actually finding that quite convenient.)


  TopGit is meant as a fresh start in the steps of StGIT, quilt-in-git
and others, of course in an attempt to Get It Right this time around.
TopGit is absolutely minimal porcelain layer that will manage your
patch queue for you using topic branches, one patch per branch,
never rewriting the history in order to enable fully distributed
workflow.  You can get TopGit at

	http://repo.or.cz/w/topgit.git

and read up on its design, usage and implementation at:

	http://repo.or.cz/w/topgit.git?a=blob;f=README


  The nicest thing about this release is Kirill's new 'tg mail' command,
'tg export --quilt -b' to create quilt series from arbitrary set of
topic branches and 'tg depend add', which has actually quite trivial
implementation, though. Then there's the usual bunch of small
enhancements and fixes.

Kirill Smelkov (3):
      tg help: <something>: improve readability
      tg import: fix + make more robust
      tg mail: new command for mailing patches

Petr Baudis (19):
      tg.sh: Typo fix (incanation -> incantation)
      .gitignore: Add tg-import, tg-remote
      Makefile: Changing Makefile means executables need to be regenerated too
      tg import: Require clean working tree and index
      tg import: Check out new files as we go
      tg delete: Allow branch delete if we aren't on symbolic HEAD
      tg remote README: Add 'git push --all' caveat warning
      tg info: Carry over missing Subject line in topmsg
      tg info, tg patch: Work on top-base HEAD too
      Ignore vim swp files
      tg mail: Tidyup
      tg mail: Simplify array usage
      tg export: Fix exporting remote-based branches
      tg delete: Fix spurious output
      tg depend add: Add dependency
      tg update: Fix resume message
      tg mail -s SEND_EMAIL_ARGS: Pass arguments to git send-email
      tg export: With quilt driver, accept explicit list of branches
      TopGit-0.4

Uwe Kleine-KĂśnig (1):
      Use git-mailinfo to extract author informations from .topmsg


  Have fun,

-- 
				Petr "Pasky" Baudis
The next generation of interesting software will be done
on the Macintosh, not the IBM PC.  -- Bill Gates

^ permalink raw reply

* Re: [RFC] gitweb wishlist and TODO list
From: Wincent Colaiuta @ 2008-09-25 13:19 UTC (permalink / raw)
  To: Jakub Narebski; +Cc: git, Petr Baudis
In-Reply-To: <200809251230.11342.jnareb@gmail.com>

El 25/9/2008, a las 12:30, Jakub Narebski escribió:

> This is yet another series of planned gitweb features. It expands more
> on new user-visible features than on improving gitweb code (therefore
> for example using Git.pm/Git::Repo, gitweb caching, and list form of
> open for pipelines are not mentioned here).
>
> Which tasks / features are most requested?  Which tasks should be done
> first?  What do you have on your gitweb TODO list?

One which I'm looking at doing is supporting reading the "README.html"  
from the tree indicated by the current HEAD instead of reading it from  
a file in the .git directory.

This should make tracking and updating such READMEs a little easier as  
all that'll be required is a "push" to advance the HEAD and the new  
README goes live.

Obviously, will have to make this optional and configurable. I'm  
thinking of providing a means of specifying the filename to look for  
(no filename, the default, means don't look), and also a setting to  
indicate the content type of the file (either plain text, which would  
be wrapped in a <pre></pre> block with HTML entities used where  
appropriate, or HTML which would be included verbatim).

Cheers,
Wincent

^ permalink raw reply

* [JGIT RFC PATCH] Improve handling of parsing errors in OpenSshConfig
From: Jonas Fonseca @ 2008-09-25 13:29 UTC (permalink / raw)
  To: Robin Rosenberg
  Cc: Shawn O. Pearce, Robin Rosenberg, sverre@rabbelier.nl,
	git@vger.kernel.org
In-Reply-To: <tQAHDMR4.1222342394.9002900.roro@localhost>

Badly quoted entries are now ignored similar to how bad port number are
currently ignored. A check for negative port numbers is now performed
so that they also will be ignored.

Signed-off-by: Jonas Fonseca <fonseca@diku.dk>

---
 .../spearce/jgit/transport/OpenSshConfigTest.java  |   46 +++++++++++++++---
 .../jgit/transport/DefaultSshSessionFactory.java   |   10 +++-
 .../org/spearce/jgit/transport/OpenSshConfig.java  |   51 ++++++++++++-------
 3 files changed, 79 insertions(+), 28 deletions(-)

 Robin Rosenberg <robin.rosenberg@dewire.com> wrote Thu, Sep 25, 2008:
 > Den 9/25/2008, skrev "Jonas Fonseca" <fonseca@diku.dk>:
 > 
 > >Badly quoted entries are now ignored similar to how bad port number are
 > >currently ignored. A check for negative port numbers is now performed
 > >so that they also will be ignored.
 > 
 > Nooo. We should really give some feedback on bad entries. OpenSSH
 > (version 5.1) complains and refuses to connect if I give it a bad port
 > number or hostname. It complains about "missing parameter" and bad
 > port number for these cases. OpenSSH doesn't simply ignore them.
 > 
 > HostName=bad"
 > Port=hubba
 > 
 > Even if openssh would ignore them I'd think it would be bad if we did,
 > unless there was some serious compatibility issue here.

 Maybe something like this? It adds OpenSshConfigException which will
 "contain" either a NumberFormatException or a ParseException.

diff --git a/org.spearce.jgit.test/tst/org/spearce/jgit/transport/OpenSshConfigTest.java b/org.spearce.jgit.test/tst/org/spearce/jgit/transport/OpenSshConfigTest.java
index ad6e79c..6b7bb4b 100644
--- a/org.spearce.jgit.test/tst/org/spearce/jgit/transport/OpenSshConfigTest.java
+++ b/org.spearce.jgit.test/tst/org/spearce/jgit/transport/OpenSshConfigTest.java
@@ -42,6 +42,7 @@
 import java.io.IOException;
 import java.io.OutputStreamWriter;
 
+import org.spearce.jgit.errors.OpenSshConfigException;
 import org.spearce.jgit.lib.RepositoryTestCase;
 import org.spearce.jgit.transport.OpenSshConfig.Host;
 
@@ -72,7 +73,18 @@ private void config(final String data) throws IOException {
 		fw.close();
 	}
 
-	public void testNoConfig() {
+	private boolean parseError(String config) throws Exception {
+		config(config);
+		OpenSshConfigException osce = null;
+		try {
+			osc.lookup("something");
+		} catch (OpenSshConfigException cause) {
+			return true;
+		}
+		return false;
+	}
+
+	public void testNoConfig() throws Exception {
 		final Host h = osc.lookup("repo.or.cz");
 		assertNotNull(h);
 		assertEquals("repo.or.cz", h.getHostName());
@@ -114,11 +126,7 @@ config("Host \"good\"\n" +
 			" Port=\"2222\"\n" +
 			"Host \"spaced\"\n" +
 			"# Bad host name, but testing preservation of spaces\n" +
-			" HostName=\" spaced\ttld \"\n" +
-			"# Misbalanced quotes\n" +
-			"Host \"bad\"\n" +
-			"# OpenSSH doesn't allow this but ...\n" +
-			" HostName=bad.tld\"\n");
+			" HostName=\" spaced\ttld \"\n");
 		assertEquals("good.tld", osc.lookup("good").getHostName());
 		assertEquals("gooduser", osc.lookup("good").getUser());
 		assertEquals(6007, osc.lookup("good").getPort());
@@ -128,7 +136,31 @@ config("Host \"good\"\n" +
 		assertEquals(2222, osc.lookup("unquoted").getPort());
 		assertEquals(2222, osc.lookup("hosts").getPort());
 		assertEquals(" spaced\ttld ", osc.lookup("spaced").getHostName());
-		assertEquals("bad.tld\"", osc.lookup("bad").getHostName());
+	}
+
+	public void testNegativePortNumber() throws Exception {
+		assertTrue(parseError("Host negativeportnumber\n" +
+			   "Port -200\n"));
+	}
+
+	public void testBadPortNumber() throws Exception {
+		assertTrue(parseError("Host badportnumber\n" +
+		       "Port twentytwo\n"));
+	}
+
+	public void testBadlyQuotedPortNumber() throws Exception {
+		assertTrue(parseError("Host badportquote\n" +
+		       "Port \"2222\n"));
+	}
+
+	public void testBadlyQuotedPortNumber2() throws Exception {
+		assertTrue(parseError("Host badportquote2\n" +
+		       "Port 2222\"\n"));
+	}
+
+	public void testBadlyQuotedHost() throws Exception {
+		assertTrue(parseError("Host badly \"quoted\n" +
+		       "HostName=unknown\n"));
 	}
 
 	public void testAlias_DoesNotMatch() throws Exception {
diff --git a/org.spearce.jgit/src/org/spearce/jgit/transport/DefaultSshSessionFactory.java b/org.spearce.jgit/src/org/spearce/jgit/transport/DefaultSshSessionFactory.java
index 89beab7..123a9b5 100644
--- a/org.spearce.jgit/src/org/spearce/jgit/transport/DefaultSshSessionFactory.java
+++ b/org.spearce.jgit/src/org/spearce/jgit/transport/DefaultSshSessionFactory.java
@@ -65,6 +65,7 @@
 import com.jcraft.jsch.Session;
 import com.jcraft.jsch.UIKeyboardInteractive;
 import com.jcraft.jsch.UserInfo;
+import org.spearce.jgit.errors.OpenSshConfigException;
 
 /**
  * Loads known hosts and private keys from <code>$HOME/.ssh</code>.
@@ -89,7 +90,12 @@
 	@Override
 	public synchronized Session getSession(String user, String pass,
 			String host, int port) throws JSchException {
-		final OpenSshConfig.Host hc = getConfig().lookup(host);
+		final OpenSshConfig.Host hc;
+		try {
+			hc = getConfig().lookup(host);
+		} catch (OpenSshConfigException osce) {
+			throw new JSchException(osce.getMessage());
+		}
 		host = hc.getHostName();
 		if (port <= 0)
 			port = hc.getPort();
@@ -128,7 +134,7 @@ private JSch getUserJSch() throws JSchException {
 		return userJSch;
 	}
 
-	private OpenSshConfig getConfig() {
+	private OpenSshConfig getConfig() throws OpenSshConfigException {
 		if (config == null)
 			config = OpenSshConfig.get();
 		return config;
diff --git a/org.spearce.jgit/src/org/spearce/jgit/transport/OpenSshConfig.java b/org.spearce.jgit/src/org/spearce/jgit/transport/OpenSshConfig.java
index b08d5c6..95a37f5 100644
--- a/org.spearce.jgit/src/org/spearce/jgit/transport/OpenSshConfig.java
+++ b/org.spearce.jgit/src/org/spearce/jgit/transport/OpenSshConfig.java
@@ -44,13 +44,16 @@
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.InputStreamReader;
+import java.text.ParseException;
 import java.util.ArrayList;
 import java.util.Collections;
+import java.util.Iterator;
 import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
 
 import org.spearce.jgit.errors.InvalidPatternException;
+import org.spearce.jgit.errors.OpenSshConfigException;
 import org.spearce.jgit.fnmatch.FileNameMatcher;
 import org.spearce.jgit.util.FS;
 
@@ -72,7 +75,7 @@
 	 *
 	 * @return a caching reader of the user's configuration file.
 	 */
-	public static OpenSshConfig get() {
+	public static OpenSshConfig get() throws OpenSshConfigException {
 		File home = FS.userHome();
 		if (home == null)
 			home = new File(".").getAbsoluteFile();
@@ -110,7 +113,7 @@ protected OpenSshConfig(final File h, final File cfg) {
 	 *            configuration file.
 	 * @return r configuration for the requested name. Never null.
 	 */
-	public Host lookup(final String hostName) {
+	public Host lookup(final String hostName) throws OpenSshConfigException {
 		final Map<String, Host> cache = refresh();
 		Host h = cache.get(hostName);
 		if (h == null)
@@ -136,7 +139,7 @@ public Host lookup(final String hostName) {
 		return h;
 	}
 
-	private synchronized Map<String, Host> refresh() {
+	private synchronized Map<String, Host> refresh() throws OpenSshConfigException {
 		final long mtime = configFile.lastModified();
 		if (mtime != lastModified) {
 			try {
@@ -146,6 +149,10 @@ public Host lookup(final String hostName) {
 				} finally {
 					in.close();
 				}
+			} catch (NumberFormatException nfe) {
+				throw new OpenSshConfigException("Parse error", nfe);
+			} catch (ParseException pe) {
+				throw new OpenSshConfigException("Parse error", pe);
 			} catch (FileNotFoundException none) {
 				hosts = Collections.emptyMap();
 			} catch (IOException err) {
@@ -156,7 +163,7 @@ public Host lookup(final String hostName) {
 		return hosts;
 	}
 
-	private Map<String, Host> parse(final InputStream in) throws IOException {
+	private Map<String, Host> parse(final InputStream in) throws IOException, ParseException {
 		final Map<String, Host> m = new LinkedHashMap<String, Host>();
 		final BufferedReader br = new BufferedReader(new InputStreamReader(in));
 		final List<Host> current = new ArrayList<Host>(4);
@@ -192,35 +199,37 @@ public Host lookup(final String hostName) {
 				continue;
 			}
 
+			final String value = dequote(argValue);
+			if (value == null)
+				continue;
+
 			if ("HostName".equalsIgnoreCase(keyword)) {
 				for (final Host c : current)
 					if (c.hostName == null)
-						c.hostName = dequote(argValue);
+						c.hostName = value;
 			} else if ("User".equalsIgnoreCase(keyword)) {
 				for (final Host c : current)
 					if (c.user == null)
-						c.user = dequote(argValue);
+						c.user = value;
 			} else if ("Port".equalsIgnoreCase(keyword)) {
-				try {
-					final int port = Integer.parseInt(dequote(argValue));
-					for (final Host c : current)
-						if (c.port == 0)
-							c.port = port;
-				} catch (NumberFormatException nfe) {
-					// Bad port number. Don't set it.
-				}
+				final int port = Integer.parseInt(value);
+				if (port < 0)
+					throw new NumberFormatException("Negative port number");
+				for (final Host c : current)
+					if (c.port == 0)
+						c.port = port;
 			} else if ("IdentityFile".equalsIgnoreCase(keyword)) {
 				for (final Host c : current)
 					if (c.identityFile == null)
-						c.identityFile = toFile(dequote(argValue));
+						c.identityFile = toFile(value);
 			} else if ("PreferredAuthentications".equalsIgnoreCase(keyword)) {
 				for (final Host c : current)
 					if (c.preferredAuthentications == null)
-						c.preferredAuthentications = nows(dequote(argValue));
+						c.preferredAuthentications = nows(value);
 			} else if ("BatchMode".equalsIgnoreCase(keyword)) {
 				for (final Host c : current)
 					if (c.batchMode == null)
-						c.batchMode = yesno(dequote(argValue));
+						c.batchMode = yesno(value);
 			}
 		}
 
@@ -242,9 +251,13 @@ private static boolean isHostMatch(final String pattern, final String name) {
 		return fn.isMatch();
 	}
 
-	private static String dequote(final String value) {
-		if (value.startsWith("\"") && value.endsWith("\""))
+	private static String dequote(final String value) throws ParseException {
+		final boolean hasStart = value.startsWith("\"");
+		final boolean hasEnd = value.endsWith("\"");
+		if (hasStart && hasEnd)
 			return value.substring(1, value.length() - 1);
+		if (hasStart || hasEnd)
+			throw new ParseException("Quote mismatch", value.indexOf("\""));
 		return value;
 	}
 
-- 
tg: (cf67dfc..) jf/opensshconfigquote (depends on: master)

-- 
Jonas Fonseca

^ permalink raw reply related

* Re: [RFC] gitweb wishlist and TODO list
From: Petr Baudis @ 2008-09-25 13:33 UTC (permalink / raw)
  To: Wincent Colaiuta; +Cc: Jakub Narebski, git
In-Reply-To: <B3B6996F-EC51-49DC-8ECE-DBA25E8F61DE@wincent.com>

On Thu, Sep 25, 2008 at 03:19:09PM +0200, Wincent Colaiuta wrote:
> One which I'm looking at doing is supporting reading the "README.html" from 
> the tree indicated by the current HEAD instead of reading it from a file in 
> the .git directory.
>
> This should make tracking and updating such READMEs a little easier as all 
> that'll be required is a "push" to advance the HEAD and the new README goes 
> live.
>
> Obviously, will have to make this optional and configurable. I'm thinking 
> of providing a means of specifying the filename to look for (no filename, 
> the default, means don't look), and also a setting to indicate the content 
> type of the file (either plain text, which would be wrapped in a 
> <pre></pre> block with HTML entities used where appropriate, or HTML which 
> would be included verbatim).

In my queue and something I will hopefully get to submit tomorrow or at
the beginning of next week is actually support for full-blown templating
of gitweb pages (customization of the summary page, even adding extra
project actions) based on gitconfig-style specification within the
project HEAD. In its simplest variant, this could be used for including
a README from the HEAD tree as well, I think. But it's in the same class
as the git-gui support for the 'publish' dialog, something potentially
useful for others, but not *universally* useful and in this case,
unfortunately somewhat invasive.

-- 
				Petr "Pasky" Baudis
People who take cold baths never have rheumatism, but they have
cold baths.

^ permalink raw reply

* [TG PATCH] Complete depend subcommand
From: Jonas Fonseca @ 2008-09-25 13:47 UTC (permalink / raw)
  To: Petr Baudis, git
In-Reply-To: <20080925110656.GB12949@diku.dk>

Also, removes a debug line and fixes the script header.

Signed-off-by: Jonas Fonseca <fonseca@diku.dk>

---
 contrib/tg-completion.bash |   60 ++++++++++++++++++++++++++-----------------
 1 files changed, 36 insertions(+), 24 deletions(-)

 The completion of the depend command didn't make it into the first
 patch because I had a broken topgit usage. Here is a resend, which
 also amends the script header.

diff --git a/contrib/tg-completion.bash b/contrib/tg-completion.bash
index 35eabe9..59fbc50 100755
--- a/contrib/tg-completion.bash
+++ b/contrib/tg-completion.bash
@@ -7,32 +7,13 @@
 # Conceptually based on gitcompletion (http://gitweb.hawaga.org.uk/).
 # Distributed under the GNU General Public License, version 2.0.
 #
-# The contained completion routines provide support for completing:
-#
-#    *) local and remote branch names
-#    *) local and remote tag names
-#    *) .git/remotes file names
-#    *) git 'subcommands'
-#    *) tree paths within 'ref:path/to/file' expressions
-#    *) common --long-options
-#
 # To use these routines:
 #
-#    1) Copy this file to somewhere (e.g. ~/.git-completion.sh).
-#    2) Added the following line to your .bashrc:
-#        source ~/.git-completion.sh
-#
-#    3) You may want to make sure the git executable is available
-#       in your PATH before this script is sourced, as some caching
-#       is performed while the script loads.  If git isn't found
-#       at source time then all lookups will be done on demand,
-#       which may be slightly slower.
+#    1) Copy this file to somewhere (e.g. ~/.tg-completion.sh).
+#    2) Source it from your ~/.bashrc.
 #
-#    4) Consider changing your PS1 to also show the current branch:
-#        PS1='[\u@\h \W$(__tg_ps1 " (%s)")]\$ '
-#
-#       The argument to __tg_ps1 will be displayed only if you
-#       are currently in a git repository.  The %s token will be
+# Note: Make sure the tg script is in your PATH before you source this
+# script, so it can properly setup cached values.
 
 case "$COMP_WORDBREAKS" in
 *:*) : great ;;
@@ -172,6 +153,22 @@ __tg_remotes ()
 	done
 }
 
+__tg_find_subcommand ()
+{
+	local word subcommand c=1
+
+	while [ $c -lt $COMP_CWORD ]; do
+		word="${COMP_WORDS[c]}"
+		for subcommand in $1; do
+			if [ "$subcommand" = "$word" ]; then
+				echo "$subcommand"
+				return
+			fi
+		done
+		c=$((++c))
+	done
+}
+
 __tg_complete_revlist ()
 {
 	local pfx cur="${COMP_WORDS[COMP_CWORD]}"
@@ -268,6 +265,21 @@ _tg_delete ()
 	esac
 }
 
+_tg_depend ()
+{
+	local subcommands="add"
+	local subcommand="$(__git_find_subcommand "$subcommands")"
+	if [ -z "$subcommand" ]; then
+		__tgcomp "$subcommands"
+		return
+	fi
+
+	case "$subcommand" in
+	add)
+		__tgcomp "$(__tg_refs)"
+	esac
+}
+
 _tg_export ()
 {
 	local cur="${COMP_WORDS[COMP_CWORD]}"
@@ -411,6 +423,7 @@ _tg ()
 	case "$command" in
 	create)      _tg_create "$c" ;;
 	delete)      _tg_delete ;;
+	depend)      _tg_depend ;;
 	export)      _tg_export ;;
 	help)        _tg_help ;;
 	import)      _tg_import ;;
@@ -426,7 +439,6 @@ _tg ()
 
 ### }}}
 
-	__tgcomp "$(__tg_refs top-bases)"
 complete -o default -o nospace -F _tg tg
 
 # The following are necessary only for Cygwin, and only are needed
-- 
tg: (43a8db8..) jf/completion-fixes (depends on: master)

-- 
Jonas Fonseca

^ permalink raw reply related

* Re: [RFC/PATCH] remove vim syntax highlighting in favor of upstream
From: Bob Hiestand @ 2008-09-25 14:00 UTC (permalink / raw)
  To: SZEDER Gábor; +Cc: Jeff King, vim, Shawn O. Pearce, git
In-Reply-To: <20080925124817.GC6816@neumann>

On Thu, Sep 25, 2008 at 7:48 AM, SZEDER Gábor <szeder@ira.uka.de> wrote:
> Hi,
>
> OK, so I'm complaining a bit.
>
> On Wed, Sep 24, 2008 at 09:56:58PM +0200, SZEDER Gábor wrote:
>> +To install:
>> +
>> +  1. Copy these files to vim's syntax directory $HOME/.vim/syntax
>> +  2. Auto-detect the editing of various git-related filetypes:
>> +     $ cat >>$HOME/.vimrc <<'EOF'
>> +     autocmd BufNewFile,BufRead *.git/COMMIT_EDITMSG    setf gitcommit
>> +     autocmd BufNewFile,BufRead *.git/config,.gitconfig setf gitconfig
>> +     autocmd BufNewFile,BufRead git-rebase-todo         setf gitrebase
>> +     autocmd BufNewFile,BufRead .msg.[0-9]*
>> +             \ if getline(1) =~ '^From.*# This line is ignored.$' |
>> +             \   setf gitsendemail |
>> +             \ endif
>> +     autocmd BufNewFile,BufRead *.git/**
>> +             \ if getline(1) =~ '^\x\{40\}\>\|^ref: ' |
>> +             \   setf git |
>> +             \ endif
>> +     EOF
>
> There are issues with this second step.  If I append this code to my
> .vimrc, then vim sometimes overrides the filetype with conf.
>
> vim has a guessing rule for detecting conf files, which triggers if
> one of the first five lines of the file begins with a '#'.  So if I
> start to write a new commit message or I interactively rebase 4 or
> less commits, then this rule triggers and vim overrides the git
> filetype with filetype conf.  If I do a commit --amend with a long
> enough original commit message or an interactive rebase with more than
> 4 commit, then this rule no more triggers and everything is fine.
>
> But what's really puzzling is that if I insert the above code into
> $VIMRUNTIME/filetype.vim (at the spot where it can be found in vim
> 7.2's filetype.vim), then everything works as expected, git filetypes
> are never overridden.
>
> This is not related to the changes in this patch.  git's original vim
> syntax highlight for commit messages has the exact same behaviour.
>
> The first step is OK: it doesn't matter whether I put git-related
> syntax files under $HOME/.vim/syntax/ or under $VIMRUNTIME/syntax/.

I'd guess that your autocommands defined in .vimrc take effect after
the default file type settings.  When you use ':setf', it
intentionally will not override the existing file type if one has
already been detected.

Use ':help new-filetype' to see the various ways you can interact with
and/or override the default filetype detection.

bob

^ permalink raw reply

* Re: On Sponsor Notices
From: Nicolas Pitre @ 2008-09-25 14:20 UTC (permalink / raw)
  To: Petr Baudis; +Cc: git, spearce
In-Reply-To: <20080925101558.GF10360@machine.or.cz>

On Thu, 25 Sep 2008, Petr Baudis wrote:

> On Wed, Sep 24, 2008 at 10:36:41PM -0400, Nicolas Pitre wrote:
> > I'd suggest you do like some people working on the Linux kernel, i.e. 
> > use your employer's email address for the Signed-off-by line but use 
> > whatever address you prefer for the from/author line.
> 
> Even if the employer's email address is basically bogus? Can you point
> to some examples of Linux kernel patches doing that, please?

See commit 6c3a158316.  If you send a mail to npitre@mvista.com at this 
point, it most likely won't reach me.


Nicolas



> 
> 				Petr "Pasky" Baudis
> 


Nicolas

^ permalink raw reply

* Re: [JGIT RFC PATCH] Improve handling of parsing errors in OpenSshConfig
From: Jonas Fonseca @ 2008-09-25 14:30 UTC (permalink / raw)
  To: Robin Rosenberg
  Cc: Shawn O. Pearce, Robin Rosenberg, sverre@rabbelier.nl,
	git@vger.kernel.org
In-Reply-To: <20080925132937.GA16151@diku.dk>

On Thu, Sep 25, 2008 at 15:29, Jonas Fonseca <fonseca@diku.dk> wrote:
> Badly quoted entries are now ignored similar to how bad port number are
> currently ignored. A check for negative port numbers is now performed
> so that they also will be ignored.

Sorry for spamming this list today. The commit message should of
course read something like:

Throw an OpenSshConfigException when parsing meet badly quoted entries
and port numbers, which do not contain numbers or are negative.

-- 
Jonas Fonseca

^ permalink raw reply

* Re: On Sponsor Notices
From: Petr Baudis @ 2008-09-25 14:32 UTC (permalink / raw)
  To: Nicolas Pitre; +Cc: git, spearce
In-Reply-To: <alpine.LFD.2.00.0809251016420.3635@xanadu.home>

On Thu, Sep 25, 2008 at 10:20:23AM -0400, Nicolas Pitre wrote:
> On Thu, 25 Sep 2008, Petr Baudis wrote:
> 
> > On Wed, Sep 24, 2008 at 10:36:41PM -0400, Nicolas Pitre wrote:
> > > I'd suggest you do like some people working on the Linux kernel, i.e. 
> > > use your employer's email address for the Signed-off-by line but use 
> > > whatever address you prefer for the from/author line.
> > 
> > Even if the employer's email address is basically bogus? Can you point
> > to some examples of Linux kernel patches doing that, please?
> 
> See commit 6c3a158316.  If you send a mail to npitre@mvista.com at this 
> point, it most likely won't reach me.

Hmm, perhaps that makes the most sense then. I'm not sure if Shawn
already applied my patches or which part of them - they don't see to be
pushed out yet. Shawn, if it's convenient for you, could you please

	s/This patch has been sponsored by Novartis.

Signed-off-by: Petr Baudis <pasky@suse.cz>/Signed-off-by: Petr Baudis
<petr.baudis@novartis.com>/ them?

-- 
				Petr "Pasky" Baudis
People who take cold baths never have rheumatism, but they have
cold baths.

^ permalink raw reply

* Re: On Sponsor Notices
From: Shawn O. Pearce @ 2008-09-25 14:35 UTC (permalink / raw)
  To: Petr Baudis; +Cc: Nicolas Pitre, git
In-Reply-To: <20080925143252.GN10360@machine.or.cz>

Petr Baudis <pasky@suse.cz> wrote:
> On Thu, Sep 25, 2008 at 10:20:23AM -0400, Nicolas Pitre wrote:
> > 
> > See commit 6c3a158316.  If you send a mail to npitre@mvista.com at this 
> > point, it most likely won't reach me.
> 
> Hmm, perhaps that makes the most sense then. I'm not sure if Shawn
> already applied my patches or which part of them - they don't see to be
> pushed out yet. Shawn, if it's convenient for you, could you please
> 
> 	s/This patch has been sponsored by Novartis.
> 
> Signed-off-by: Petr Baudis <pasky@suse.cz>/Signed-off-by: Petr Baudis
> <petr.baudis@novartis.com>/ them?

Yup.  I only pushed them to my pu branch because I suspected
something like this was going to happen.  ;-)

One filter-branch script coming up...

-- 
Shawn.

^ permalink raw reply

* Re: Partial tree export and merging
From: Heiko Voigt @ 2008-09-25 14:36 UTC (permalink / raw)
  To: Nguyen Thai Ngoc Duy; +Cc: git, Jens Lehmann
In-Reply-To: <fcaeb9bf0809241051se24bcf7tb836d1b820e288d6@mail.gmail.com>

Nguyen Thai Ngoc Duy schrieb:
> That could be done with (under-developing) sparse checkout. Basically
> language team's people do "git clone --sparse-checkout='*.loc:*.html'
> your-repo.git". Then they only have *.loc and *.html files in working
> directory. When they commit, all other files are unchanged. Developers
> merge to have updated *.log/html as usual.

Where is that option ? Or are you suggesting me to implement it ?

> I have a question though: is language team allowed to checkout/modify
> files other than *.loc and *.html?

Well in an ideal world they should only have access to the "language" 
files. But it is not crucial for us if they get access to the source. 
Its more an issue of user friendlyness. The revision control which is in 
place at the moment does allow them to selectively check out those files.

Heiko

^ permalink raw reply

* Re: [RFC] gitweb wishlist and TODO list
From: Pedro Melo @ 2008-09-25 14:45 UTC (permalink / raw)
  To: Jakub Narebski; +Cc: git, Petr Baudis
In-Reply-To: <200809251423.56983.jnareb@gmail.com>

Hi,

On Sep 25, 2008, at 1:23 PM, Jakub Narebski wrote:

> Pedro Melo wrote:
>> On Sep 25, 2008, at 11:30 AM, Jakub Narebski wrote:
>>
>>> * Support for FastCGI (via CGI::Fast or FCGI).
>>>
>>> Unfortunately I don't use FastCGI.  This has to be done in a very
>>> un-intruisive way, and without performance penalties for "ordinary"
>>> CGI and mod_perl.
>>>
>>> Suggested: input reading and validation refactoring.
>>
>> Is it ok to require CPAN modules? If yes, then using HTTP::Engine  
>> as a
>> base could be helpful here.
>
> No, it is not.  Some gitweb installations (kernel.org, IIRC) are on
> tightly managed machines, where installation is severely restricted.
> If it is distributed together with Perl package it is best, if it can
> be found in distribution packages it is good, if it can be found in
> distribution extras it is quite good, if it can be found in trusted
> package repository, it is manageable.  Installing untested packages
> from CPAN is usually out of the question.

> That said...
>
>> It supports standalone deployments as well as FastCGI, CGI, mod_perl,
>> POE and others.
>>
>> And it acts as a very simple HTTP-layer, without any "framework"
>> logic.
>
> ...if we could make it conditional on HTTP::Engine being installed,
> and fallback on current code easily, it could be done, I think,  
> without
> problems.
>
> Thanks for the pointer.

While researching HTTP::Engine (I use Catalyst and they where talking  
about moving to it), I also came across a new HTTP layer, called  
Mango. Also on CPAN, so same conditional code applies.

Right now, I'm not sure what the Cat team is thinking, HTTP::Engine or  
Mango, or other, but I suggest the use of the stack then end up  
choosing. The Cat team has a very good test-driven way-of-doing  
things, and the modules they use tend to stabilize very quickly.

Best regards,
-- 
Pedro Melo
Blog: http://www.simplicidade.org/notes/
XMPP ID: melo@simplicidade.org
Use XMPP!

^ permalink raw reply

* Re: Partial tree export and merging
From: Nguyen Thai Ngoc Duy @ 2008-09-25 14:51 UTC (permalink / raw)
  To: Heiko Voigt; +Cc: git, Jens Lehmann
In-Reply-To: <48DBA1DF.3050502@mahr.de>

On 9/25/08, Heiko Voigt <heiko.voigt@mahr.de> wrote:
> Nguyen Thai Ngoc Duy schrieb:
>
> > That could be done with (under-developing) sparse checkout. Basically
> > language team's people do "git clone
> --sparse-checkout='*.loc:*.html'
> > your-repo.git". Then they only have *.loc and *.html files in working
> > directory. When they commit, all other files are unchanged. Developers
> > merge to have updated *.log/html as usual.
> >
>
>  Where is that option ? Or are you suggesting me to implement it ?

As I said, it is being developed. It should not be used in production
environment yet but if you want to try, you can get it from here

http://repo.or.cz/w/git/pclouds.git in branch sparse-checkout

> > I have a question though: is language team allowed to checkout/modify
> > files other than *.loc and *.html?
> >
>
>  Well in an ideal world they should only have access to the "language"
> files. But it is not crucial for us if they get access to the source. Its
> more an issue of user friendlyness. The revision control which is in place
> at the moment does allow them to selectively check out those files.

Thanks. Just wanted to know the scenario that sparse checkout could be used.
-- 
Duy

^ permalink raw reply

* Re: [PATCH] usage.c: remove unused functions
From: Shawn O. Pearce @ 2008-09-25 14:51 UTC (permalink / raw)
  To: Petr Baudis, Jonas Fonseca, Lars Hjemli
  Cc: Thomas Rast, Nanako Shiraishi, Junio C Hamano, git
In-Reply-To: <20080925124836.GI10360@machine.or.cz>

Petr Baudis <pasky@suse.cz> wrote:
> On Thu, Sep 25, 2008 at 01:48:37PM +0200, Thomas Rast wrote:
> > Nanako Shiraishi wrote:
> > > This removes three functions that are not used anywhere.
> > [...]
> > > -void set_usage_routine(void (*routine)(const char *err) NORETURN)
> > > -void set_error_routine(void (*routine)(const char *err, va_list params))
> > > -void set_warn_routine(void (*routine)(const char *warn, va_list params))
> > 
> > These blame to the following commit:
> > 
> >   commit 39a3f5ea7c0352a530338d30d4e618f6b4db84e4
> >   Author: Petr Baudis <pasky@suse.cz>
> > 
> >       Customizable error handlers
...
> > So apparently the intent was that they would only be used from outside
> > Git.  I don't know whether anyone still plans to do that, but they're
> > certainly not "just" unused.
> 
> I don't think it will be a big deal to remove these functions, though it
> does feel like a little bit of a step backwards in the libgit efforts.
> There are some programs that already link to Git, like CGit - I wonder
> if some of them don't use them (CGit itself doesn't).

IMHO these are useless for a "libgit".  However both tig and
cgit link to the non-existant libgit.a, so they may be using
these routines.  I've CC'd their authors and am not applying this
particular change without an ACK from them.

-- 
Shawn.

^ permalink raw reply

* Re: [PATCH] git-submodule: remove unnecessary exits when calling resolve_relative_url
From: Shawn O. Pearce @ 2008-09-25 14:54 UTC (permalink / raw)
  To: Johannes Sixt; +Cc: David Aguilar, gitster, git, johan, mlevedahl
In-Reply-To: <48DB81DE.6070600@viscovery.net>

Johannes Sixt <j.sixt@viscovery.net> wrote:
> David Aguilar schrieb:
> > resolve_relative_url calls die() when no remote url exists so these calls to
> > exit can be removed.
> ...
> > @@ -155,7 +155,7 @@ cmd_add()
> >  	case "$repo" in
> >  	./*|../*)
> >  		# dereference source url relative to parent's url
> > -		realrepo=$(resolve_relative_url "$repo") || exit
> > +		realrepo=$(resolve_relative_url "$repo")
> >  		;;
> 
> Did you test it? The command inside $(...) is run in its own sub-process,
> therefore, the die() does not exit the caller, just the sub-process, and
> the || exit *is* required.
> 
> BTW, I think that || exit is sufficient; you don't need to add another
> error message - the one that resolve_relative_url() prints is sufficient.

Exactly.

I think we just need a "|| exit" after each of these
$(resolve_relative_url) calls.  The original patch that
started this discussion just needs a "|| exit".

die with an additional message is just too verbose.


-- 
Shawn.

^ permalink raw reply

* Re: [PATCH] git-submodule: remove unnecessary exits when calling resolve_relative_url
From: Johan Herland @ 2008-09-25 14:58 UTC (permalink / raw)
  To: Shawn O. Pearce; +Cc: git, Johannes Sixt, David Aguilar, gitster, mlevedahl
In-Reply-To: <20080925145407.GM3669@spearce.org>

On Thursday 25 September 2008, Shawn O. Pearce wrote:
> Johannes Sixt <j.sixt@viscovery.net> wrote:
> > Did you test it? The command inside $(...) is run in its own
> > sub-process, therefore, the die() does not exit the caller, just
> > the sub-process, and the || exit *is* required.
> >
> > BTW, I think that || exit is sufficient; you don't need to add
> > another error message - the one that resolve_relative_url() prints
> > is sufficient.
>
> Exactly.
>
> I think we just need a "|| exit" after each of these
> $(resolve_relative_url) calls.  The original patch that
> started this discussion just needs a "|| exit".

The original patch did exactly that: 
http://article.gmane.org/gmane.comp.version-control.git/96493


Have fun!

...Johan


-- 
Johan Herland, <johan@herland.net>
www.herland.net

^ permalink raw reply

* Re: [JGIT RFC PATCH] Improve handling of parsing errors in OpenSshConfig
From: Shawn O. Pearce @ 2008-09-25 15:16 UTC (permalink / raw)
  To: Jonas Fonseca; +Cc: Robin Rosenberg, sverre@rabbelier.nl, git@vger.kernel.org
In-Reply-To: <20080925132937.GA16151@diku.dk>

Jonas Fonseca <fonseca@diku.dk> wrote:
> Badly quoted entries are now ignored similar to how bad port number are
> currently ignored. A check for negative port numbers is now performed
> so that they also will be ignored.
> 
> Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
> 
> ---
>  .../spearce/jgit/transport/OpenSshConfigTest.java  |   46 +++++++++++++++---
>  .../jgit/transport/DefaultSshSessionFactory.java   |   10 +++-
>  .../org/spearce/jgit/transport/OpenSshConfig.java  |   51 ++++++++++++-------
>  3 files changed, 79 insertions(+), 28 deletions(-)

Well, at first glance the new OpenSshConfigException is missing
from the patch.  We need that class to compile correctly.  ;-)
 
> diff --git a/org.spearce.jgit/src/org/spearce/jgit/transport/DefaultSshSessionFactory.java b/org.spearce.jgit/src/org/spearce/jgit/transport/DefaultSshSessionFactory.java
> index 89beab7..123a9b5 100644
> --- a/org.spearce.jgit/src/org/spearce/jgit/transport/DefaultSshSessionFactory.java
> +++ b/org.spearce.jgit/src/org/spearce/jgit/transport/DefaultSshSessionFactory.java
> @@ -89,7 +90,12 @@
>  	@Override
>  	public synchronized Session getSession(String user, String pass,
>  			String host, int port) throws JSchException {
> -		final OpenSshConfig.Host hc = getConfig().lookup(host);
> +		final OpenSshConfig.Host hc;
> +		try {
> +			hc = getConfig().lookup(host);
> +		} catch (OpenSshConfigException osce) {
> +			throw new JSchException(osce.getMessage());
> +		}

I would perfer to chain the OpenSshConfigException as the cause of
the JSchException.  That way the caller has a chance to give us a
complete stack trace, including the cause of the OSCE being the
inner NumberFormatException or ParseException.

Robin or I will need to edit the EclipseSshSessionFactory to add
this same sort of try/catch.  To keep the tree buildable we'll
want to squash that into your patch.  Yea, sorry, this is where
the egit+jgit within one repository is going to bite us.

> diff --git a/org.spearce.jgit/src/org/spearce/jgit/transport/OpenSshConfig.java b/org.spearce.jgit/src/org/spearce/jgit/transport/OpenSshConfig.java
> index b08d5c6..95a37f5 100644
> --- a/org.spearce.jgit/src/org/spearce/jgit/transport/OpenSshConfig.java
> +++ b/org.spearce.jgit/src/org/spearce/jgit/transport/OpenSshConfig.java
> @@ -146,6 +149,10 @@ public Host lookup(final String hostName) {
>  				} finally {
>  					in.close();
>  				}
> +			} catch (NumberFormatException nfe) {
> +				throw new OpenSshConfigException("Parse error", nfe);
> +			} catch (ParseException pe) {
> +				throw new OpenSshConfigException("Parse error", pe);
>  			} catch (FileNotFoundException none) {
>  				hosts = Collections.emptyMap();
>  			} catch (IOException err) {

If we are really going to this level of effort, can we please have
the file path and line number of the invalid line in the exception?

We rarely parse the ~/.ssh/config.  In general its parsed only once
during startup.  Going through a bit more work at parse time to get
more accurate error messages is acceptable.

I think it may be a good idea to have the exception thrown only
when a bad Host block is accessed, or if we try to access an unknown
host and there is an unreadable Host block.

So I'm thinking more like we stuff an OSCE instance into the Host
block if the host has a bad entry, and during get() or lookup()
we test for the exception and rethrow the exception.

E.g. lets say my config file is this:

	$ cat ~/.ssh/config
	Host work
		Hostname internal.google.com"
		Port -1

	Host orcz
		Hostname repo.or.cz
		User spearce
		Port 22

then:

  jgit fetch orcz:foo.git;        # works without error
  jgit fetch work:foo.git;        # throws OSCE due to bad Hostname
  jgit fetch kernel.org:foo.git;  # works as no Host matched

However if my config was more bogus, e.g.:

	$ cat ~/.ssh/config
	Host work"
		User sop

	Host orcz
		Hostname repo.or.cz
		User spearce
		Port 22

then:

  jgit fetch orcz:foo.git;        # still works without error
  jgit fetch work:foo.git;        # fails due to bad Host header
  jgit fetch kernel.org:foo.git;  # fails due to bad Host header

-- 
Shawn.

^ permalink raw reply

* RE: [QGit] Some suggestion
From: Li Frank-B20596 @ 2008-09-25 15:20 UTC (permalink / raw)
  To: Marco Costalba; +Cc: git
In-Reply-To: <e5bfff550809250451q578b8e10r75c043d307a63f28@mail.gmail.com>

Marco:
	
	Yes, it is really work although it is not nature way.
	This way don't work at file view. 

	Ctrl +/- change font size, but how to change source code view
font size. 
	
	12. Marcor Costalba  10 #include <QProcess>
	12. Marcor Costalba  10 #include <QRegExp>


Best regards
Frank Li 

-----Original Message-----
From: Marco Costalba [mailto:mcostalba@gmail.com] 
Sent: Thursday, September 25, 2008 7:52 PM
To: Li Frank-B20596
Cc: git@vger.kernel.org
Subject: Re: [QGit] Some suggestion

On Thu, Sep 25, 2008 at 7:24 AM, Li Frank-B20596
<Frank.Li@freescale.com> wrote:
> Can add below function at qgit?
> ===Difference other version===
>        1. user choose a commit,
>        2. right click
>                Check working dir
>                View patch
>                ....
>                [Diff with other commit]
>
>        3. change icon +
>        4. user choose other commit
>
>        QGit show list of changed files.
>        click one files, call extern diff tool show difference.
>
> === file view ===
>        Can use different color to high light current commit change.
>

You can _already_ do this.

 1. user choose a commit

 2. user choose other commit with CTRL + RIGHT CLICK


One of the problems of qgit is that the features are not immediately
visible. This is a conscious choice to avoid cluttering the GUI.

Currently the _best_ way to have a  complete idea of qgit is to read the
handbook (press F1 key): it takes only 5 minutes and you can find
interesting features otherwise very difficult to find by accident.

Marco

^ permalink raw reply

* Re: gitweb tags feed, Re: New version announcements?
From: Petr Baudis @ 2008-09-25 15:31 UTC (permalink / raw)
  To: Julian Phillips; +Cc: Jordi Bunster, git, gitster
In-Reply-To: <Pine.LNX.4.64.0807241600190.7093@reaper.quantumfyre.co.uk>

On Thu, Jul 24, 2008 at 04:04:03PM +0100, Julian Phillips wrote:
> On Thu, 24 Jul 2008, Petr Baudis wrote:
>> On Thu, Jul 24, 2008 at 10:38:24AM -0400, Jordi Bunster wrote:
>>> I've been following the git mailing list to stay on top of new releases,
>>> but the traffic got too high.
>>>
>>> Any way that a git-announce list could be created for security fixes and
>>> new releases? Or maybe an RSS feed on the website?
>
> An RSS feed already exists, have a look at http://gitrss.q42.co.uk/.

Thanks, I have added the RSS feeds to the git.or.cz homepage.

>  ---
> Peter's hungry, time to eat lunch.

Mmm...

-- 
				Petr "Pasky" Baudis
People who take cold baths never have rheumatism, but they have
cold baths.

^ permalink raw reply


This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox