git revert в Egit

Можно ли выполнить "git revert" в Egit для отката изменений путем создания нового совершить (в отличие от проверки более старого коммита или выполнения жесткого сброса, который не System Environment / Base

Что мне нужно, так это возможность установить несколько групп для этого пакета (например, System | Util | MyCompanyName ) - они будут похожи на теги, назначенные пакету.

Когда пакет установлен, я хочу запросить его, например

rpm -q --group System

или

rpm -q --group MyCompanyName

, и в обоих случаях я должен увидеть свой пакет (и другие, принадлежащие к этой группе)


Изменить:

Многие пакеты могут принадлежать в группу MyCompanyName, но только некоторые из них могут быть установлены. Мне нужен способ отличить наши пакеты от системных пакетов linux - я планировал сделать это, используя имя группы


. Я попытался поместить несколько строк Group: , но он использует только последнюю. Все, что находится после Group: , кажется, воспринимается как одна строка, и я не мог найти способ их разделить. можно создать функцию класса , имитирующую поведение стандартного класса, включая наследование или закрытые члены. Или можно имитировать функциональные инструменты, написав, например, функцию curry , которая будет принимать функцию и некоторые из ее аргументов и возвращать частично примененную функцию.

Мне было интересно, возможно ли это сделать наоборот и имитировать прототипный метод на более классических языках. В частности, я немного подумал, можно ли имитировать прототипы в Python, но отсутствие поддержки анонимных функций (более общих, чем лямбды) оставляет меня в тупике.

Можно ли написать некоторые функции для имитации пропотипов в языки на основе классов, в частности в Python?

EDIT Позвольте мне привести пример того, как можно реализовать такую ​​вещь (но я ' m не в состоянии сделать все это).

Во-первых, то, что больше всего напоминает объекты Javascript, - это словарь Python. Таким образом, у нас могут быть простые объекты, такие как

foo = {
    'bar': 1,
    'foobar': 2
}

. Конечно, мы хотим добавить метод, и это не проблема, пока метод соответствует лямбда-выражению

foo = {
    'bar': 1,
    'foobar': 2,
    'method': lambda x: x**2
}

. Теперь мы можем вызвать, например,

foo['method'](2)
>>> 4

Now если бы у нас были произвольные функции в качестве методов, мы могли бы продолжать в том же духе. Сначала нам нужны функции внутри foo , чтобы иметь доступ к самому foo ; в противном случае это просто обычные функции, а не методы.

Я думаю, что это можно сделать, применив функцию makeObject к foo , которая перебирает значения foo и всякий раз, когда находит значение, которое можно вызвать, изменяет свой атрибут __ call __ , чтобы передать foo в качестве первого аргумента.

На этом этапе у нас будут автономные объекты, которые можно объявить без необходимости создания классов.

] Затем нам нужно предоставить foo прототип, который можно передать в качестве второго аргумента функции makeObject . Функция должна изменить foo .__ getattr __ и foo .__ setattr __ следующим образом: всякий раз, когда атрибут не найден в foo , его следует искать в foo .prototype .

Итак, я думаю, что смогу реализовать это, ожидая одного: я не могу придумать никаких способов объявить методы более сложные, чем лямбда-выражения, кроме как объявить их заранее и прикрепить их к моему объекту . Проблема в отсутствии анонимных функций. Я спросил здесь, потому что, возможно, какой-нибудь гуру Python найдет какой-нибудь умный способ обойти это.

9
задан Daniel Mahler 4 January 2016 в 09:55
поделиться