2011-08-08 23 views
5

Tôi đang sử dụng git với Kaleidoscope được định cấu hình làm difftool. Nó được làm việc tốt trong nhiều tháng. Nó cũng đang hoạt động cách đây một hoặc hai ngày. Hôm nay, khi tôi đã cố gắng làm một "git difftool", đột nhiên, git báo cáoVấn đề khó khăn của Git: không thể tạo tệp tạm thời

fatal: unable to create temp-file: No such file or directory 

Tìm kiếm xung quanh trên google gợi ý rằng đây có thể là một vấn đề cho phép thư mục trong repo git địa phương. Nhưng tình hình đã không cải thiện ngay cả sau khi một chown đệ quy trên repo git.

Tài liệu Git-difftool không đề cập đến nơi có thể bạn đang cố gắng tạo tệp tạm thời này. Có ai có bất kỳ ý tưởng về làm thế nào để tìm thấy điều này?

+0

Giá trị của '$ TMPDIR' trên máy chủ Git của bạn là gì? – VonC

+0

Bắt tốt! $ TMPDIR đã được đặt thành một cái gì đó điên "/private/tmp/PKInstallSandbox.W1I4ev/tmp". Sau một chút googling, điều này rõ ràng là một vấn đề được biết đến với một trình cài đặt của một ứng dụng (TotalTerminal). Nó đã tự cập nhật ngày hôm nay, nhưng tôi không nghĩ rằng nó sẽ thực sự phá vỡ một cái gì đó. – odie

+0

tuyệt vời. Tôi đã đăng câu trả lời với những yếu tố đó, để có nhiều khả năng hiển thị hơn. – VonC

Trả lời

6

Như tôi đã nhận xét, loại thông báo này phụ thuộc thường vào giá trị của biến môi trường $TMPDIR.

Trong trường hợp của OP:

$TMPDIR được thiết lập để một cái gì đó điên "/private/tmp/PKInstallSandbox.W1I4ev/tmp".
Sau một chút googling, đây rõ ràng là một vấn đề đã biết với trình cài đặt ứng dụng (TotalTerminal).
Nó đã tự cập nhật ngày hôm nay, nhưng tôi không nghĩ rằng nó sẽ thực sự phá vỡ một cái gì đó.

Khôi phục $TMPDIR thành giá trị "sane" (như /tmp hoặc khác MacOs-specific localtion) nên khắc phục sự cố.

+0

Cảm ơn bạn! =) – odie

+0

Làm cách nào để bạn đặt $ TMPDIR thành/tmp? – dmackerman

+1

@dmackerman tùy thuộc vào trình bao của bạn, bạn sẽ viết 'export TMPDIR =/tmp' trong' .cshrc' của bạn, để cho phiên của bạn kế thừa tự động giá trị đúng. – VonC

Các vấn đề liên quan