2010-01-28 39 views
13

Có cách nào để yêu cầu Perforce rời khỏi tệp văn bản một mình mà không cần đặt loại tệp là nhị phân không? Hoặc ngăn chặn điều đó, có cách nào để thông báo cho khách hàng Perforce về các tệp nhị phân khác không? Nhị phân thường không phải là mong muốn, bởi vì tôi mất khả năng khác biệt.Perforce: Giữ Perforce thay đổi định dạng tệp văn bản

Để làm rõ: Nếu tôi chỉnh sửa và thực hiện thay đổi đối với tệp * .txt trên ứng dụng cửa sổ của tôi, dòng mới sẽ có CR + LF theo định dạng DOS. Nhưng nếu tôi P4 đồng bộ trên một máy khách Unix, nó sẽ chỉ có LF. Tôi cần Perforce giữ nguyên định dạng, bất kể vị trí của ứng dụng khách Perforce.

Điều đó nói rằng, tôi có một công việc xung quanh: Đặt loại tệp là nhị phân; và/hoặc tạo một chi nhánh với các tập tin văn bản được thiết lập là "văn bản", và tích hợp định kỳ trở lại vào dòng chính nơi các tập tin văn bản được thiết lập là "nhị phân". Nhưng đây là một công việc quá phức tạp đối với những gì nên là một vấn đề rất đơn giản.

Cuối cùng, tôi đang ở trên Perforce Máy khách Windows 2006.2.

Xin cảm ơn trước.

Trả lời

8

Đặt tất cả thông số kỹ thuật máy khách/không gian làm việc của bạn thành dòng 'unix'. Sau đó, không có chuyển đổi nào sẽ xảy ra khi bạn đăng ký trên Windows.

Xem http://answers.perforce.com/articles/KB_Article/CR-LF-Issues-and-Text-Line-endings/

+0

Ok. Thế này tốt hơn. Trong khi không lý tưởng, nó tốt hơn nhiều so với việc phải tạo ra một chi nhánh riêng biệt. Cảm ơn! – hythlodayr

+0

Liên kết được cập nhật thành: http://answers.perforce.com/articles/KB_Article/CR-LF-Issues-and-Text-Line-endings/ –

-3

Đặt tệp cho tiện ích mở rộng khác.

+1

Không, vì chúng được cho là tệp chất lượng sản xuất. Người ta có thể đồng bộ và sao chép vào môi trường liền mạch và không phức tạp. Trong cùng một tĩnh mạch, unix2dos cũng không phải là một lựa chọn. – hythlodayr

5

Máy khách Perforce có thể xử lý dòng kết thúc đúng khi đồng bộ hóa với các nền tảng khác nhau miễn là bạn có tùy chọn LineEnd được đặt đúng trên máy khách của mình. Có lẽ bạn đã đặt sai? Mở thông số khách hàng của bạn và đặt tùy chọn LineEnd theo nhu cầu của bạn.

Khám phá this KB article trên trang web của họ để biết thêm thông tin. Dưới đây là một đoạn trích:

Ở phía máy chủ, Perforce xử lý dòng cuối cùng. Mặc dù chẳng đả cửa hàng tập tin lưu trữ máy chủ trên đĩa trong nguồn gốc dòng ước chấm dứt hệ thống điều hành (CR/LF trên Windows, LF trên Unix), tất cả các dòng kết thúc được chuẩn hóa để kiểu Unix LF dòng kết thúc cho nội bộ Perforce Các hoạt động của máy chủ như đồng bộ hóa p4, p4 gửi và khác biệt p4.

Về phía không gian làm việc của khách hàng, chẳng đả xử lý dòng kết thúc được xác định bởi một lựa chọn toàn cầu cho mỗi clientspec. Khi bạn đồng bộ hóa các tệp văn bản với không gian làm việc của khách hàng bằng đồng bộ hóa p4 hoặc , hãy gửi lại cho Máy chủ Perforce khi gửi p4, dòng cuối của chúng là được chuyển đổi như được chỉ định trong phần clientspec LineEnd.

+0

Tôi sợ điều đó, nhưng cảm ơn bạn vì bài báo. Nói một cách đơn giản, các máy khách Unix của chúng tôi (và máy chủ tệp) phải có khả năng chứa một tập hợp các tệp văn bản Windows và Unix. Thậm chí tệ hơn: Chúng tôi có một số tệp văn bản bản địa hóa (tương tự như các tệp thuộc tính Java) mà máy chủ Perforce mangles. Than ôi, giải pháp duy nhất có để thiết lập mọi thứ thành nhị phân. – hythlodayr

+0

@hythlodayr: Hiện tại bạn có hợp đồng hỗ trợ với Perforce không? Nếu có, bạn có thể gọi cho họ. Có lẽ họ biết một số thủ đoạn có thể khiến nó hoạt động theo cách bạn muốn. – raven

+0

Vấn đề là nó không hoạt động và Perforce từ chối thừa nhận lỗi. Perforce hỏng tất cả các tệp văn bản theo mặc định nếu bạn đã từng gửi tệp từ * nix có đuôi dòng Windows hoặc ngược lại. – Richard1403832

1

Khi thêm các tập tin văn bản mà bạn muốn được coi là nhị phân để Perforce, sử dụng lệnh p4 add với các tùy chọn -t để ghi đè lên bảng loại bản đồ. Xem tài liệu here. Ví dụ được đưa ra là p4 add -t binary file.pdf.

3

Tôi vừa xem chính xác cùng một vấn đề, nhưng có giải pháp tốt hơn không liên quan đến việc thay đổi thông số kỹ thuật của khách hàng (quốc tế và không phải tất cả những gì tôi có quyền truy cập ghi).

Tất cả khách hàng của chúng tôi là máy tính Windows, nhưng Cygwin được đưa vào trong Perforce Depot. Cygwin là một cài đặt Windows của Unix, và yêu cầu các tệp văn bản sử dụng LF cho các kết thúc dòng.

Một giải pháp khả thi cho các phiên bản Cygwin cũ hơn là gắn kết gốc bằng tùy chọn "văn bản", có nghĩa là các tệp có thể có kết thúc dòng CR + LF. Tuy nhiên, khi nâng cấp lên Cygwin 1.7.9, việc này không còn hoạt động nữa, vì các kết nối tạm thời trừ khi chúng được ghi vào/etc/fstab. Tôi không quản lý được công việc này.

May mắn thay, Guru Perforce ngồi bên cạnh tôi đã đưa ra giải pháp thay đổi loại tệp thành nhị phân + D, sử dụng cùng một lưu trữ bản vá gia tăng RCS dưới dạng tệp văn bản, nhưng không có chuyển đổi kết thúc dòng tự động.

Tôi có thể phân biệt các tệp "văn bản" này thành công giữa không gian làm việc cục bộ của tôi và kho.

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