Tôi đã tạo tệp diff.txt bằng lệnh (được thực thi từ ~):
diff -r /full/path/to/directory/A /full/path/to/directory/B > diff.txt
Tệp khác biệt được tạo có vẻ tốt.
Bây giờ tôi chạy (luôn luôn từ ~)
vá -p0 <>
Hoặc tôi cũng đã thử:
vá <>
Tôi muốn nó áp dụng các thay đổi cho các tệp trong /full/path/to/directory/A để sau khi thao tác, chúng sẽ giống với các tệp trong /full/path/to/directory/B
Nhưng nó chỉ nói:* Chỉ có rác được tìm thấy trong đầu vào bản vá.
我错过了什么?
EDIT: Đây là toàn bộ tệp khác:
diff /media/DATA/lavoro/eclipse_workspace/ODK Collect/src/net/xxx/collect/android/activities/FormEntryActivity.java /media/DATA/lavoro/xxx/backups/odk src embed maps/net/xxx/collect/ android/hoạt động/FormEntryActivity.java
21a22,27
>
> nhập com.google.android.maps.GeoPoint;
> nhập com.google.android.maps.MapActivity;
> nhập com.google.android.maps.MapView;
> nhập com.google.android.maps.MyLocationOverlay;
>
36a43
> nhập net.xxx.collect.android.widgets.GeoPointWidget;
50a58,60
> nhập android.location.Location;
> nhập android.location.LocationListener;
> nhập android.location.LocationManager;
86a97
> nhập java.util.List;
96,97c107,108
< lớp công khai FormEntryActivity mở rộng Hoạt động triển khai AnimationListener, FormLoaderListener,
< FormSavedListener, AdvanceToNextListener, OnGestureListener {
---
> lớp công khai FormEntryActivity mở rộng MapActivity triển khai AnimationListener, FormLoaderListener,
> FormSavedListener, AdvanceToNextListener, OnGestureListener, LocationListener {
115a127,133
>
> // Phát hành:
> Chuỗi cuối cùng tĩnh riêng GMAPS_API_KEY="0SH1_CwvF7Nn4_kT8NcGTc8vMCjrqIdpXOjSqcA";
>
> // Gỡ lỗi:
> // Chuỗi cuối cùng tĩnh riêng tư GMAPS_API_KEY="0SH1_CwvF7Nm8oPeWuNskdKCKKWZ1VlGx6mqTfg";
>
162a181,190
>
> MapView mMapView riêng tư;
> boolean riêng tư mGPSOn = false;
> boolean riêng tư mNetworkOn = false;
> MyLocationOverlay riêng tư mLocationOverlay;
> Trình quản lý vị trí riêng mLocationManager;
> Vị trí riêng tư mLocation;
> GeoPoint mGeoPoint riêng tư;
>
> boolean riêng flingEnabled=true;
171a200
> Log.d(t, "onCreate "+(savedInstanceState==null?":" với SavedInstanceState"));
207a237,240
> Log.d(t, "savedInstanceState "+(newForm?"có vẻ:"có vẻ như không")+" là một biểu mẫu mới");
> }
> khác {
> Log.d(t, "savedInstanceState không có khóa newForm");
223a257
> Log.d(t,"Phiên bản không cấu hình cuối cùng là FormLoaderTask");
225a260
> Log.d(t,"Phiên bản không cấu hình cuối cùng là SaveToDiskTask");
227a263
> Log.d(t,"Phiên bản không cấu hình cuối cùng là null");
228a265
> Log.d(t," và biểu mẫu này không mới");
298a336,360
>
>
> mLocationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
> Danh sách nhà cung cấp = mLocationManager.getProviders(true);
> for (Nhà cung cấp chuỗi: nhà cung cấp) {
> if (provider.equalsIgnoreCase(LocationManager.GPS_PROVIDER)) {
> mGPSOn = true;
> }
> if (provider.equalsIgnoreCase(LocationManager.NETWORK_PROVIDER)) {
> mNetworkOn = đúng;
> }
> }
> if (!mGPSOn && !mNetworkOn) {
> Toast.makeText(getBaseContext(), getString(R.string.provider_disabled_error),
> Toast.LENGTH_SHORT).show();
> //kết thúc();
> }
>
> }
>
> public void EnableFling() {
> flingEnabled=true;
> }
> vô hiệu hóa khoảng trống công khaiFling() {
> flingEnabled=false;
300d361
<
303a365
> Log.d(t,"onSavedInstanceState");
312a375
> Log.d(t,"onActivityResult "+requestCode+" "+resultCode+" "+intent.getAction());
457a521
> Log.d(t,"refreshCurrentView");
610a675
> Log.d(t,"onRetainNonConfigurationInstance");
612,613c677,680
< if (mFormLoaderTask != null && mFormLoaderTask.getStatus() != AsyncTask.Status.FINISHED)
< trả về mFormLoaderTask;
---
> if (mFormLoaderTask != null && mFormLoaderTask.getStatus() != AsyncTask.Status.FINISHED){
> Log.d(t," trả về mFormLoaderTask");
>
> trả về mFormLoaderTask;
614a682,683
> }
>
616,618c685,689
< if (mSaveToDiskTask != null && mSaveToDiskTask.getStatus() != AsyncTask.Status.FINISHED)
< trả về mSaveToDiskTask;
<
---
> if (mSaveToDiskTask != null && mSaveToDiskTask.getStatus() != AsyncTask.Status.FINISHED) {
> Log.d(t," return mSaveToDisk");
>
> trả về mSaveToDiskTask;
> }
620a692
> Log.d(t, " chỉ lưu câu trả lời. Không cần vượt qua mFormController");
622a695
> Log.d(t," trả về null");
772c845
< khoảng trống riêng tư showNextView() {
---
> khoảng trống công khai showNextView() {
1316a1390,1391
> mLocationManager.removeUpdates(cái này);
> if (mLocationOverlay!=null) mLocationOverlay.disableMyLocation();
1322a1398
> Log.d(t,"nResume");
1323a1400,1407
> if (mLocationOverlay!=null) mLocationOverlay.enableMyLocation();
> nếu (mGPSOn) {
> mLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, this);
> }
> nếu (mNetworkOn) {
> mLocationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, this);
> }
>
1337a1422,1426
>
>
>
>
>
1367a1457,1477
> Log.d(t,"---- onDestroy ----");
> vấn đề boolean=false;
> if (mFormLoaderTask != null && mFormLoaderTask.getStatus() != AsyncTask.Status.FINISHED){
> Log.d(t," Tôi ước gì tôi có thể giữ lại mFormLoaderTask");
> vấn đề=đúng;
> }
> khác nếu (mSaveToDiskTask != null && mSaveToDiskTask.getStatus() != AsyncTask.Status.FINISHED) {
> Log.d(t," Tôi ước gì tôi có thể giữ lại mSaveToDisk");
> vấn đề=đúng;
> }
> khác nếu (mFormController != null && currentPromptIsQuestion()) {
> Log.d(t, " Ước gì tôi có cơ hội lưu lại câu trả lời");
> vấn đề=đúng;
> }
>
> if (!problem) Log.d(t," mọi thứ có vẻ ổn");
>
>
>
>
>
1369c1479
< mFormLoaderTask.setFormLoaderListener(null);
---
> mFormLoaderTask.setFormLoaderListener(null);
1373a1484
> Log.d(t," Hủy và hủy tác vụ của trình tải biểu mẫu");
1376a1488,1489
> else Log.d(t," Không hủy tác vụ tải biểu mẫu vì nó chưa hoàn thành");
>
1382a1496
> Log.d(t," Đang hủy tác vụ lưu vào đĩa");
1394a1509,1512
> if (mCurrentView!=null && mCurrentView instanceof ODKView)
> for (QuestionWidget qw : ((ODKView) mCurrentView).getWidgets()) {
> qw.onInAnimationDone();
> }
1607c1725,1726
< if (Math.abs(e1.getX() - e2.getX()) > 60 && Math.abs(e1.getY() - e2.getY()) < 60) {
---
> if (! flingEnabled) trả về sai;
> if (Math.abs(e1.getX() - e2.getX()) > 60 && Math.abs(e1.getY() - e2.getY()) < 60) {
1631c1750
< // Chúng tôi không muốn điều đó nên hãy hủy nó đi.
---
> // Chúng tôi không muốn điều đó nên hãy hủy nó.
1645a1765,1842
>
>
> @Ghi đè
> boolean được bảo vệ isRouteDisplayed() {
> // TODO Sơ khai phương thức được tạo tự động
> trả về sai;
> }
>
> MapView công khai getMapView() {
> nếu (mMapView==null) {
> Log.d("FormEntryActivity", "Tạo MapView");
> mMapView=MapView mới(cái này, GMAPS_API_KEY);
> mMapView.setBuiltInZoomControls(true);
> mMapView.setSatellite(false);
> mMapView.getController().setZoom(16);
> createLocationOverlay();
> }
> trả về mMapView;
> }
> công khai MyLocationOverlay getLocationOverlay() {
> trả về mLocationOverlay;
> }
>
> khoảng trống công khai createLocationOverlay() {
> Log.d("FormEntryActivity", "createLocationOverlay");
> mLocationOverlay=MyLocationOverlay mới(this,mMapView);
> mMapView.getOverlays().add(mLocationOverlay);
> mLocationOverlay.enableMyLocation();
> }
>
>
> @Ghi đè
> public void onLocationChanged(Vị trí vị trí) {
> nếu (đúng) {
> Log.d("FormEntryActivity", "onLocationChanged");
> mLocation = vị trí;
> if (mLocation != null) {
>
> mGeoPoint =
> GeoPoint mới((int) (mLocation.getLatitude() * 1E6),
> (int) (mLocation.getLongitude() * 1E6));
> if (mCurrentView!=null && mCurrentView instanceof ODKView)
> for (QuestionWidget qw : ((ODKView) mCurrentView).getWidgets()) {
> if (qw instanceof GeoPointWidget) {
> ((GeoPointWidget)qw).onLocationChanged();
> }
> }
>
> }
> }
> }
> GeoPoint công khai getGeoPoint() {
> trả về mGeoPoint;
> }
> Vị trí công cộng getLocation() {
> trả về mLocation;
> }
>
>
> @Ghi đè
> public void onProviderDisabled(Nhà cung cấp chuỗi) {
> // TODO Sơ khai phương thức được tạo tự động
>
> }
>
>
> @Ghi đè
> public void onProviderEnabled(Nhà cung cấp chuỗi) {
> // TODO Sơ khai phương thức được tạo tự động
>
> }
>
>
> @Ghi đè
> public void onStatusChanged(Nhà cung cấp chuỗi, trạng thái int, Gói bổ sung) {
> // TODO Sơ khai phương thức được tạo tự động
>
> }
diff -r /media/DATA/lavoro/eclipse_workspace/ODK Collect/src/net/xxx/collect/android/widgets/GeoPointWidget.java /media/DATA/lavoro/xxx/backups/odk src embed maps/net/xxx/ thu thập/android/widget/GeoPointWidget.java
19a20,24
>
> nhập com.google.android.maps.GeoPoint;
> nhập com.google.android.maps.MapView;
> nhập com.google.android.maps.Overlay;
>
27a33
> nhập android.location.Location;
31a38
> nhập android.view.ViewGroup;
34a42
> nhập android.widget.RelativeLayout;
37a46
> nhập java.util.List;
47a57
> Nút riêng tư mAcceptButton;
55c65,73
<
---
>
> MapView mMapView riêng tư;
> mFEA FormEntryActivity riêng tư;
> TextView mLocationStatus riêng tư;
>
> riêng tư Bố cục tương đối mMapContainerLayout;
>
> LinearLayout.LayoutParams riêng tư lp;
> ReelLayout.LayoutParams rlp;
59c77,79
<
---
>
>
>
113c133
< if (mAppearance != null && mAppearance.equalsIgnoreCase("maps")) {
---
> if (mAppearance == null || mAppearance.equalsIgnoreCase("maps")) {
133,141c153
< Ý định i = null;
< nếu (mUseMaps) {
< i = Ý định mới(getContext(), GeoPointMapActivity.class);
< } khác {
< i = Ý định mới(getContext(), GeoPointActivity.class);
< }
< ((Hoạt động) getContext()).startActivityForResult(i,
< FormEntryActivity.LOCATION_CAPTURE);
< mWaitingForData = true;
---
> launchMap();
148,149c160,186
<
< addView(mGetLocationButton);
---
> mFEA=(FormEntryActivity)bối cảnh;
> //addView(mGetLocationButton);
> Log.d("GeoPointWidget","Thêm ViewMap vào hàm tạo");
>
> setUpMapContainer();
> }
>
> khoảng trống được bảo vệ setUpMapContainer() {
> lp=new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT);
> lp.setMargins(0, 0, 0, 0);
>
> rlp=newRelativeLayout.LayoutParams(RelativeLayout.LayoutParams.FILL_PARENT,RelativeLayout.LayoutParams.FILL_PARENT);
> rlp.setMargins(0, 0, 0, 0);
>
> mMapContainerLayout=Bố cục tương đối mới(mFEA);
> mMapContainerLayout.setLayoutParams(lp);
>
> this.addView(mMapContainerLayout);
> }
>
> @Ghi đè
> được bảo vệ void addQuestionText(FormEntryPrompt p) {
> trở về;
> }
>
> khoảng trống riêng tư launchMap() {
> Ý định i = null;
151c188,190
< addView(mViewButton);
---
> i = Ý định mới(getContext(), GeoPointMapActivity.class);
> } khác {
> i = Ý định mới(getContext(), GeoPointActivity.class);
153c192,270
< addView(mAnswerDisplay);
---
> ((Hoạt động) getContext()).startActivityForResult(i,
> FormEntryActivity.LOCATION_CAPTURE);
> mWaitingForData = true;
> }
> @Ghi đè
> khoảng trống công khai trênInAnimationDone() {
> addMapView();
> }
>
> khoảng trống được bảo vệ addMapView() {
> nếu (mUseMaps) {
> //addView(mViewButton);
> mMapView=(mFEA).getMapView();
> if (mMapView.getParent()!=null) {
> ((ViewGroup)(mMapView.getParent())).removeView(mMapView);
>
> }
>
> mMapView.setLayoutParams(rlp);
> mMapContainerLayout.addView(mMapView);
>
> Xem mapButtons=View.inflate(mFEA, R.layout.map_buttons_layout, null);
> mMapContainerLayout.addView(mapButton);
>
> mLocationStatus=(TextView)findViewById(R.id.location_status);
>
>
>
> /*
> this.setLayoutParams(lp);
> LinearLayout p=this;
> trong khi (p!=null) {
> if (p.getParent()!=null && p.getParent() instanceof LinearLayout) {
> p.setLayoutParams(lp);
> p.invalidate();
> p=(LinearLayout)(p.getParent());
>
> }
> khác {
> phá vỡ;
> }
> }
> if (p.getParent()!=null && p.getParent() instanceof InteractiveLayout) {
> Bố cục tương đối r=(RelativeLayout)(p.getParent());
> PreviousRelativeLayout.LayoutParams lpr=newRelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT,RelativeLayout.LayoutParams.MATCH_PARENT);
> lpr.setMargins(0,0,0,0);
> p.setLayoutParams(lpr);
> r.invalidate();
> }
> */
> mMapView.setClickable(true);
> mMapView.setBuiltInZoomControls(true);
> mMapView.displayZoomControls(false);
> mMapView.setSatellite(false);
> mMapView.getController().setZoom(24);
> Danh sách lớp phủ=mMapView.getOverlays();
> if (overlays.size()==0) {
> Log.d("GeoPointWidget","Tạo lớp phủ vị trí (từ hàm tạo)");
> mFEA.createLocationOverlay();
> }
> mMapView.invalidate();
>
> mAcceptButton=(Nút)findViewById(R.id.accept_location);
> //mAcceptButton.setEnabled(false);
> mAcceptButton.setText(R.string.cancel_location);
> mAcceptButton.setOnClickListener(new View.OnClickListener() {
> @Ghi đè
> khoảng trống công khai trênClick(Xem v) {
> chấp nhậnOrSkip();
> }
> });
>
>
> if (mFEA.getGeoPoint()!=null) onLocationChanged();
>
> mFEA.disableFling();
> }
> //addView(mAnswerDisplay);
>
155d271
<
163a280,284
>
> khoảng trống riêng tư chấp nhậnOrSkip() {
> mFEA.enableFling();
> mFEA.showNextView();
> }
269a391,414
> }
> Chuỗi riêng truncateFloat(float f) {
> return new DecimalFormat("#.##").format(f);
> }
> khoảng trống công khai trênLocationChanged() {
> //Chúng tôi cần chế độ xem văn bản mLocationStatus
> if (mMapView==null) trả về;
> nếu (mLocationStatus!=null)
> mLocationStatus.setText(getContext().getString(R.string.location_provider_accuracy,
> mFEA.getLocation().getProvider(), truncateFloat(mFEA.getLocation().getAccuracy())));
> if (mAcceptButton!=null) mAcceptButton.setText(R.string.accept_location);
> Log.d("GeoPointWidget","onLocationChanged. Lớp phủ: "+(mMapView.getOverlays().size()));
> GeoPoint gp=mFEA.getGeoPoint();
> if (gp!=null) mMapView.getController().animateTo(mFEA.getGeoPoint());
> Danh sách lớp phủ=mMapView.getOverlays();
> if (overlays.size()==0) {
> Log.d("GeoPointWidget","Tạo lớp phủ vị trí");
> mFEA.createLocationOverlay();
> }
> Vị trí location=mFEA.getLocation();
> if (location!=null) {
> setBinaryData(location.getLatitude() + " " + location.getLongitude() + " "
> + location.getAltitude() + " " + location.getAccuracy(), false);
> }
diff -r /media/DATA/lavoro/eclipse_workspace/ODK Collect/src/net/xxx/collect/android/widgets/ImageWidget.java /media/DATA/lavoro/xxx/backups/odk src embed maps/net/xxx/ thu thập/android/widget/ImageWidget.java
330c330,335
< if (mBinaryName==null) {
---
>
> }
>
> @Ghi đè
> khoảng trống công khai trênInAnimationDone() {
> if (mBinaryName==null) {
diff -r /media/DATA/lavoro/eclipse_workspace/ODK Collect/src/net/xxx/collect/android/widgets/QuestionWidget.java /media/DATA/lavoro/xxx/backups/odk src embed maps/net/xxx/ thu thập/android/widget/QuestionWidget.java
147a148,151
>
> khoảng trống công khai trênInAnimationDone() {
>
> }
Tôi là một lập trình viên xuất sắc, rất giỏi!