aboutsummaryrefslogtreecommitdiff
path: root/git-gui/lib
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2008-01-20 16:58:38 -0800
committerJunio C Hamano <gitster@pobox.com>2008-01-20 16:58:38 -0800
commit105c21df14531bf2fd39e05b4c3a9aa31349da06 (patch)
tree272f75883898897f17c337e247b70043e5efdaaf /git-gui/lib
parenta41acc63badf20cbb22cca61039dca9309deaa19 (diff)
parenta02855711310b553c610fe7ef634f4ceb25fe9f6 (diff)
downloadgit-105c21df14531bf2fd39e05b4c3a9aa31349da06.tar.gz
git-105c21df14531bf2fd39e05b4c3a9aa31349da06.tar.xz
Merge git://repo.or.cz/git-gui
* git://repo.or.cz/git-gui: git-gui: Makefile - Handle $DESTDIR on Cygwin git-gui: add french glossary: glossary/fr.po git-gui: Refresh file status description after hunk application git-gui: Allow 'Create New Repository' on existing directories git-gui: Initial french translation git-gui: Improve German translation. git-gui: Updated Swedish translation after mailing list review. git-gui: Fix broken revert confirmation. git-gui: Update German translation git-gui: Update glossary: add term "hunk"
Diffstat (limited to 'git-gui/lib')
-rw-r--r--git-gui/lib/choose_repository.tcl50
-rw-r--r--git-gui/lib/diff.tcl2
-rw-r--r--git-gui/lib/index.tcl4
3 files changed, 27 insertions, 29 deletions
diff --git a/git-gui/lib/choose_repository.tcl b/git-gui/lib/choose_repository.tcl
index 2bac50e14..86faf24cc 100644
--- a/git-gui/lib/choose_repository.tcl
+++ b/git-gui/lib/choose_repository.tcl
@@ -290,11 +290,6 @@ method _write_local_path {args} {
}
method _git_init {} {
- if {[file exists $local_path]} {
- error_popup [mc "Location %s already exists." $local_path]
- return 0
- }
-
if {[catch {file mkdir $local_path} err]} {
error_popup [strcat \
[mc "Failed to create repository %s:" $local_path] \
@@ -417,41 +412,35 @@ method _new_local_path {} {
if {$p eq {}} return
set p [file normalize $p]
- if {[file isdirectory $p]} {
- foreach i [glob \
- -directory $p \
- -tails \
- -nocomplain \
- * .*] {
- switch -- $i {
- . continue
- .. continue
- default {
- error_popup [mc "Directory %s already exists." $p]
- return
- }
- }
- }
- if {[catch {file delete $p} err]} {
- error_popup [strcat \
- [mc "Directory %s already exists." $p] \
- "\n\n$err"]
- return
- }
- } elseif {[file exists $p]} {
- error_popup [mc "File %s already exists." $p]
+ if {![_new_ok $p]} {
return
}
set local_path $p
}
method _do_new2 {} {
+ if {![_new_ok $local_path]} {
+ return
+ }
if {![_git_init $this]} {
return
}
set done 1
}
+proc _new_ok {p} {
+ if {[file isdirectory $p]} {
+ if {[_is_git [file join $p .git]]} {
+ error_popup [mc "Directory %s already exists." $p]
+ return 0
+ }
+ } elseif {[file exists $p]} {
+ error_popup [mc "File %s already exists." $p]
+ return 0
+ }
+ return 1
+}
+
######################################################################
##
## Clone Existing Repository
@@ -607,6 +596,11 @@ method _do_clone2 {} {
}
}
+ if {[file exists $local_path]} {
+ error_popup [mc "Location %s already exists." $local_path]
+ return
+ }
+
if {![_git_init $this]} return
set local_path [pwd]
diff --git a/git-gui/lib/diff.tcl b/git-gui/lib/diff.tcl
index 18aba3eae..d04f6dbde 100644
--- a/git-gui/lib/diff.tcl
+++ b/git-gui/lib/diff.tcl
@@ -358,5 +358,7 @@ proc apply_hunk {x y} {
display_file $current_diff_path $mi
if {$o eq {_}} {
clear_diff
+ } else {
+ set current_diff_path $current_diff_path
}
}
diff --git a/git-gui/lib/index.tcl b/git-gui/lib/index.tcl
index a0b22f294..30a244cc1 100644
--- a/git-gui/lib/index.tcl
+++ b/git-gui/lib/index.tcl
@@ -386,7 +386,9 @@ proc revert_helper {txt paths} {
set reply [tk_dialog \
.confirm_revert \
"[appname] ([reponame])" \
- [mc "Any unstaged changes will be permanently lost by the revert."] \
+ "$query
+
+[mc "Any unstaged changes will be permanently lost by the revert."]" \
question \
1 \
[mc "Do Nothing"] \