Lỗi Mercurial: hủy bỏ không cung cấp tên người dùng


117

Sự cố trên WindowsXP (có thể sẽ xảy ra trên tất cả các bản cài đặt Win), lần đầu tiên sử dụng Mercurial. Tôi đã tìm thấy câu trả lời ở một nơi không rõ ràng nên tôi đang tự hỏi / trả lời câu hỏi để những người khác không phải tìm kiếm như tôi đã làm.

Lần đầu tiên sử dụng Mercurial trên máy.

Thêm repoz mới:

c:\bla\>hg add

không vấn đề gì.

Tiếp theo, cam kết:

c:\bla\hg commit

lỗi:

hủy bỏ: không cung cấp tên người dùng (xem "cấu hình trợ giúp hg")


70
Thông tin về tiện ích kiểm soát phiên bản không liên quan đến lập trình như thế nào?
mipadi 24/02/10

5
@mipadi: Theo cách tương tự, thông tin về cách sử dụng bàn phím không liên quan đến lập trình.
Draemon

Nó thực sự là một con mắt đen đối với Mecurial rằng đã hơn hai năm và vấn đề này vẫn tồn tại.
Celeritas

Tập tin chết tiệt trong Cygwin đâu rồi ??! ... Oh. Nếu repo được clone'd hoặc init'ed, có một trong (repo) / hg.
luser droog

Câu trả lời:


94

Giải pháp:

Trên bản cài đặt Windows của tôi, Mercurial.inikhông được phổ biến. Nó cũng cần một email người dùng được thêm vào nó.

Lấy Mercurial.initệp mặc định được tìm thấy trong thư mục cài đặt thực thi Mercurial ( C:\Program Files\Mercurial\Mercurial.initrên máy của tôi) và sao chép nó vào dir nhà người dùng của bạn ( C:\Documents and Settings\myNametrên winXP).

Trên bản cài đặt Windows 7 không có .ini mặc định, bạn sẽ cần tạo một cái mới trong C:\Users\myName.

Sau đó, chỉnh sửa tệp .ini đó. Tìm khu vực này. Tên người dùng cần một bộ email. Nó sẽ trống - thêm tên email của bạn vào đây.

[ui]
; editor used to enter commit logs, etc.  Most text editors will work.
editor = notepad
username = userEmail@domain.com

Điều này đã khắc phục sự cố cho tôi.


1
Tôi đăng q / a này để hy vọng sẽ giúp ai đó trong tương lai khỏi phải lãng phí thời gian với thứ này.
Kevin Won

4
Trên thực tế, không có tệp Mercurial.ini trong thư mục cài đặt của tôi. Thêm một tệp được gọi hgrctrong .hgthư mục của kho lưu trữ của tôi với văn bản ở trên cho phép tôi thực hiện các thay đổi.
Phil Gan

2
Không có tệp Mercurial.ini nào trong thư mục cài đặt của tôi (Win 7 64-bit). Tôi đã tạo Mercurial.ini trên C: \ Users \ Abbas và sao chép đoạn mã [ui] của Kevin và nó hoạt động như một sự quyến rũ. Đã thử giải pháp của Phil và nó cũng hoạt động.
Abbas

Cảm ơn vì câu hỏi và câu trả lời. Tôi sẽ mất nhiều tuổi để hiểu ra điều đó. À, những khó khăn khi phát triển trên Windows ...
Wes

Tôi đang sử dụng Tortoise Hg và mẹo đó cũng giúp tôi. Cảm ơn !
James Freitas

51

Tôi xin lỗi, nhưng tại sao bạn gọi đây là một vấn đề? Mercurial yêu cầu bạn xem hg help configvà văn bản trợ giúp này cho bạn biết rõ ràng cách thêm tên người dùng - Tôi biết từ khi tôi viết văn bản trợ giúp đó :-)

Chúng ta nên cải thiện thông báo lỗi như thế nào để làm rõ hơn điều này?

Chỉnh sửa: Kể từ khi tôi viết bài này vào năm 2010, chúng tôi đã cố gắng khắc phục vấn đề này bằng cách hg help configbao gồm trợ giúp cho tất cả các cài đặt cấu hình. Vì vậy, một ví dụ nhỏ hay về cách đặt tên người dùng:

[ui]
username = Your Name <your@email.com>

hiện bị mất trong nhiễu (thêm cái này vào ~/.hgrc, tạo tệp nếu cần). Tôi đã mở một vấn đề cho điều này.


1
Cảm ơn vì lời giải thích - thật tuyệt khi mọi người theo dõi các câu hỏi với giải pháp mà họ tìm thấy :-) Tuy nhiên, văn bản trợ giúp hg help configbao gồm hướng dẫn dành cho Windows, tức là nó liệt kê các vị trí có thể có của Mercurial.initệp của bạn . Một trong những vị trí là C:\Program Files\Mercurial\Mercurial.ini(được liệt kê là <install-dir>\Mercurial.ini), vì vậy tôi không chắc tại sao cài đặt trong tệp đó không có hiệu lực.
Martin Geisler

13
Vấn đề lớn đối với tôi (và điều đã đưa tôi đến câu hỏi này) là thực tế không có vấn đề nào trong số này được đề cập trên trang bắt đầu nhanh: evalurial.selenic.com/quickstart/# . Trang đó ngụ ý rằng cài đặt cơ bản được thực hiện theo hướng dẫn sẽ hoạt động và nó không hoạt động nếu không đọc văn bản trợ giúp. Tại thời điểm này, bạn đang lo lắng vì bạn đã cho rằng có điều gì đó không ổn
Nick Fortescue

7
@Martin Geisler: hg help configVăn bản không cho biết chúng ta cần làm gì để giải quyết vấn đề và không rõ ràng đặc biệt là nơi các đường dẫn đang trỏ đến trong phần "Trên Windows". Đâu %USERPROFILE%hay %HOME%điểm? Tôi đoán không có ích gì khi cài đặt sau mercurial.inikhông tồn tại ở bất kỳ đâu trên hệ thống của tôi.
Phil Gan

8
Đừng có ý xúc phạm, vì vậy hãy coi đây là một nỗ lực mang tính xây dựng. Có thể có câu trả lời trong 1260 dòng văn bản được in ra theo tiêu chuẩn khi tôi thực hiện "hg help config" nhưng tôi thực sự nghĩ rằng 1260 dòng văn bản là quá mức và đó là một câu trả lời ngắn gọn khác biệt, ngay cả khi nó gửi tôi đến tài liệu sẽ tốt hơn nhiều.
Tony Giaccone

4
@TonyGiaccone: Quay lại năm 2010 hg help configsẽ chỉ in một vài đoạn văn bản và tôi đã đảm bảo rằng việc đặt tên người dùng là ví dụ chính trong văn bản đó. Kể từ đó, chúng tôi đã cố gắng khắc phục điều đó bằng cách bao gồm văn bản trợ giúp cho tất cả các tùy chọn cấu hình trong đầu ra đó :-( Tôi đã mở một vấn đề cho điều này: evalurial.selenic.com/bts/issue3348
Martin Geisler

13

Trên Windows XP, tôi không thấy tệp ini. Sau khi tạo kho lưu trữ bằng lệnh hg init, tôi đã thêm tệp có tên hgrcvào thư mục.hg

Với nội dung sau:

[ui]  
editor = notepad  
username = zamboni@icemachine.com

1
đề cập đến thư mục hgrctrong .hgthư mục rất hữu ích
E-rich

9

bất kể windows hay linux, hg sẽ xem tệp "/.hg/hgrc" để có cấu hình hợp lệ. Như trong "hg help config" đã nói, bạn chỉ phải thêm vào cuối tệp đó những dòng sau:

[ui]
username = YOUR NAME <EMAIL@HOST.COM>
verbose = true

save and "hg commit -m 'test'"


4

Nếu bạn đang sử dụng TortoiseHg, bạn có thể thêm cài đặt [Giao diện người dùng] dễ dàng

  1. Nhấp chuột phải vào bất kỳ thư mục Explorer nào để truy cập menu TortoiseHg .

  2. Từ menu TortoiseHg bay ra, chọn Cài đặt chung

  3. Từ giao diện nhấp vào Chỉnh sửa tệp

  4. Thêm cài đặt [Giao diện người dùng] vào cuối

[ui]

tên người dùng = YourName

verbose = true

  1. Lưu và bạn đã hoàn tất

3

Đây là những gì hoạt động như một sự quyến rũ đối với tôi trên Windows XP:

  1. Chuyển đến thư mục C:\Program Files\Mercurial\hgrc.dgiả sử bạn đã cài đặt Mercurial C:\Program Files\Mercurial\.
  2. Bạn sẽ thấy một Mercurial.RCtập tin trong đó.
  3. Sao chép tệp vào C:\Documents and Settings\ [USERNAME]\
  4. Đổi tên Mercurial.RCthành Mercurial.ini.
  5. Chỉnh sửa phần [ui] như sau:

    [ui]

    ; trình soạn thảo được sử dụng để nhập nhật ký cam kết, v.v. Hầu hết các trình soạn thảo văn bản sẽ hoạt động.

    editor = notepad

    verbose = Đúng

    tên người dùng = userEmail@domain.com


Cũng làm việc cho Windows Server 2008 và 64 bit Mercurial msi dĩ nhiên ngoại trừ bước 3 nên c: \ users [username]
Andrew Cowenhoven

Sau khi cài đặt "TortoiseHg 2.2 với Mercurial 2.0 - x86 Windows", các tập tin Mercurial.RC có thể được tìm thấy dưới C: \ Program Files \ TortoiseHg \ hgrc.d
urig

1

Tôi đã từng gặp vấn đề tương tự. Điều đã giúp tôi là đặt [ui]username = firstname lastnametrên các dòng riêng biệt của ~/.hgrctệp. Đặt hai thứ này trên một dòng không hoạt động và dẫn đến lỗi.


1

Vấn đề này vẫn tồn tại. Các mercurial.initập tin được bỏ qua bất cứ đâu bạn đặt nó.

Không có mercurial.initệp nào được tạo trong khi cài đặt. Tôi đã tạo một trong thư mục cài đặt Mercurial, nhưng nó không có tác dụng. Tôi đã sao chép nó vào %USERPROFILE%và sau đó đến %HOME%, nhưng không cái nào hoạt động.

Đưa .hgrcvào thư mục HOME hoạt động.

Tài liệu ("hg help config") cần được sửa.


1

Định cấu hình cho bạn .hgrc như thế này:

[ui]
username = your name <youremail@host.com>
verbose = True

GHI CHÚ!! Đừng bỏ qua phần [ui]


0

Đây là một vấn đề vì trong tệp trợ giúp đường dẫn đến tệp cấu hình được chỉ định không tồn tại, chúng ta phải sao chép Mercurial.initừ thư mục tệp chương trình sang thư mục USER, có thể đây là sự cố đến từ trình cài đặt trên windows.

@Kevin Won: bạn quên thêm dòng:

verbose = True
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.