Визуальные инструменты сравнения и сравнения SVN для Linux

Исключение нулевого указателя - это индикатор того, что вы используете объект, не инициализируя его.

Например, ниже - класс ученика, который будет использовать его в нашем коде.

public class Student {

    private int id;

    public int getId() {
        return this.id;
    }

    public setId(int newId) {
        this.id = newId;
    }
}

Приведенный ниже код дает вам исключение с нулевым указателем.

public class School {

    Student obj_Student;

    public School() {
        try {
            obj_Student.getId();
        }
        catch(Exception e) {
            System.out.println("Null Pointer ");
        }
    }
}

Поскольку вы используете Obj_Student, но вы забыли инициализировать его, как в правильном коде, показанном ниже:

public class School {

    Student obj_Student;

    public School() {
        try {
            obj_Student = new Student();
            obj_Student.setId(12);
            obj_Student.getId();
        }
        catch(Exception e) {
            System.out.println("Null Pointer ");
        }
    }
}
25
задан bahrep 17 December 2012 в 08:14
поделиться

10 ответов

Примечание. Если у вашего инструмента сравнения есть CLI (интерфейс командной строки), его можно легко интегрировать с Git как для сравнения, так и для слияния (если он поддерживает 3-way сливается ).
Начиная с Git1.6.3, параметры difftool - mergetool позволяют интегрировать эту программу сравнения (см. « Как просмотреть вывод ' git diff ] с программой визуального сравнения? ").

KDiff3 , например, является хорошим кандидатом для этого, поскольку он даже автоматически обнаруживается Git .

6
ответ дан 28 November 2019 в 18:08
поделиться

Я использовал meld для этой цели , в Ubuntu вы можете просто сделать:

apt-get install meld

Я думаю, что это только двустороннее сравнение, но обычно это только то, что вам нужно, и только то, что вам все равно показывает diff.

Когда вы получаете конфликт с использованием SVN и необходимо выполнить слияние, обычно вы получаете 4 файла AFAIR.

  • file.mine - файл с вашими локальными изменениями, как до обновления svn.
  • file.r - Ревизия, в которой вы создали свои локальные изменения.
  • file.r - Ревизия, на которую вы обновили svn, обычно HEAD.
  • file - Subversions пытаются объединить ваши изменения в обновленный файл.

Итак, чтобы использовать meld для слияния ваших изменений, вы должны сделать:

meld file.mine file.<n+m>

И слить свои изменения в ревизию, обновленную из svn, или наоборот. Обычно легче объединить файл с наименьшим количеством изменений в файл с наибольшим количеством изменений.

И, наконец, вы замените файл объединенным файлом и выполните следующее:

svn resolved file
42
ответ дан 28 November 2019 в 18:08
поделиться

Beyond Compare также поддерживает Linux. Если вам уже нравится BC для Windows, я бы сказал, выбери победителя.

7
ответ дан 28 November 2019 в 18:08
поделиться

Diffuse поддерживает Subversion, Mercurial, Git и некоторые другие. системы контроля версий. Он работает и в Windows. Для Ubuntu просто установите пакет .deb с помощью "$ sudo dpkg -i diffuse - *. Deb" и затем запустите "

8
ответ дан 28 November 2019 в 18:08
поделиться

KDiff3 очень хорош (я также использую его в Windows). Он работает как для сравнения, так и для слияния.

2
ответ дан 28 November 2019 в 18:08
поделиться

Я много использовал SlickEdit в Linux. Он имеет довольно приятный встроенный просмотрщик / редактор различий. Он работает с SVN, CVS и парой других репозиториев контроля версий.

1
ответ дан 28 November 2019 в 18:08
поделиться

А как насчет kdiff (особенно если вы используете KDE) Или, если у вас есть IDE (например, Eclipse / netbeans), разве она не предоставляет функций, связанных с SVN?

(Я лично использую Eclipse PDT для PHP; и это подключаемый модуль Subversive для SVN)

1
ответ дан 28 November 2019 в 18:08
поделиться

I use Vim's diff mode for this. With the vcscommand plugin, you can simply type :VCSDiff to enter diff-mode on the current file versus its history.

1
ответ дан 28 November 2019 в 18:08
поделиться

Ну... кто-нибудь уже попробовал DiffMerge? Если нет, то я рекомендую всем это сделать. Если вы пользовались WinMerge для windows, то вы найдете эту программу отличной альтернативой WinMerge для Ubuntu / Linux.

Попробуйте поискать подробности на следующем сайте: http://www.webtechquery.com/index.php/2010/05/free-diff-tools-ubuntu-linux-windows/

Thanks

1
ответ дан 28 November 2019 в 18:08
поделиться

Существует также ECMerge , он имеет встроенную поддержку просмотра HG, Git, Bazaar (при наличии соответствующего инструмента командной строки) вместе с синтаксисом. выделение и так далее: http://www.elliecomputing.com/ он одинаково работает в Linux, MacOS X, Solaris и Windows.

0
ответ дан 28 November 2019 в 18:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: