小编Hou*_*ell的帖子

如何在预提交钩子中正确git stash/pop以获得一个干净的工作树进行测试?

我正在尝试使用一系列单元测试进行预提交钩子,我想确保我的工作目录是干净的.编译需要很长时间,所以我希望尽可能利用重用编译的二进制文件.我的脚本遵循我在网上看到的例子:

# Stash changes
git stash -q --keep-index

# Run tests
...

# Restore changes
git stash pop -q
Run Code Online (Sandbox Code Playgroud)

这会导致问题.这是repro:

  1. 添加// Step 1a.java
  2. git add .
  3. 添加// Step 2a.java
  4. git commit
    1. git stash -q --keep-index #存储更改
    2. 运行测试
    3. git stash pop -q #恢复更改

此时我遇到了问题.该git stash pop -q显然有冲突,a.java我有

// Step 1
<<<<<<< Updated upstream
=======
// Step 2
>>>>>>> Stashed changes
Run Code Online (Sandbox Code Playgroud)

有没有办法让这个流畅干净?

git git-stash githooks

24
推荐指数
1
解决办法
5577
查看次数

Java日期 - 使用的正确类是什么?

所以整个Java Date/Calendar/GregorianCalendar事情显然是一个笑话.什么是正确的日期类使用?

编辑:为Android上的第三方构建SDK,应用程序需要提供日期

更多编辑:使这个显然是一个笑话的事情:

  • 99%的日期已被弃用
  • 日期年份从1900年开始抵消
  • Date的月份为零索引,而day为one-indexed
  • 日期是可变的
  • 您应该使用日历来创建日期...
  • ...除非你真的必须使用GregorianCalendar
    • 是否有相当一部分开发人员想要使用不同的日历?
  • Calendar.getTime()返回Date
  • 没有日期数学(比如几年中两个日期相隔多远)
    • 从纪元开始,以毫秒为单位的混乱不计算在内
  • 你不能把部分连在一起得到一个表达式(就像一年前的今天)
  • 可能更多的东西

java android

16
推荐指数
1
解决办法
531
查看次数

附加属性作为XAML元素

我有一类附加属性:

public static class XamlProps
{
    #region Attached Properties

    private static readonly DependencyProperty FooProperty = DependencyProperty.RegisterAttached(
        "Foo",
        typeof(string),
        typeof(XamlProps),
        null);

    public static void SetFoo(DependencyObject obj, string action)
    {
        obj.SetValue(FooProperty, action);
    }
}
Run Code Online (Sandbox Code Playgroud)

我在我的XAML中使用这些属性:

<Border me:XamlProps.Foo="Foo to the Bar">
Run Code Online (Sandbox Code Playgroud)

但是现在我想在这个属性中有一个更大的值,所以我想把它用作一个元素:

<Border>
    <me:XamlProps.Foo>Foo to the Bar</me:XamlProps.Foo>
</Border>
Run Code Online (Sandbox Code Playgroud)

但是现在Silverlight不再调用SetFoo()了.我如何让它工作?

在Windows Phone 7上,如果重要的话.

c# silverlight xaml windows-phone-7

10
推荐指数
1
解决办法
3301
查看次数

如何在我的设备上获取logcat以显示来自所有进程的日志

我正在尝试编写一个能够读取设备上所有日志的应用程序.我有一个客户端/服务架构,我看到来自客户端和服务进程的日志消息,但我没有看到来自手机上任何其他应用程序的任何消息(我确实看到使用桌面logcat的其他消息).

我需要root吗?

代码片段

表现

<uses-permission android:name="android.permission.READ_LOGS" />
Run Code Online (Sandbox Code Playgroud)

日志阅读器

Runtime.getRuntime().exec("logcat -c").waitFor();

Process process = Runtime.getRuntime().exec("logcat -v long *:*");
BufferedReader reader = 
    new BufferedReader(new InputStreamReader(process.getInputStream()));
while (true) {
    String nextLine = reader.readLine();
    if (!nextLine.contains("LogWatcher-D")) {
        Log.w("LogWatcher-D", "See: " + nextLine);
    }

    // Process line
}
Run Code Online (Sandbox Code Playgroud)

android logcat

10
推荐指数
1
解决办法
6843
查看次数

Subversion - 始终使用我的一组文件来解决冲突

我们有一大堆自动生成的代码可以在subversion中保留.有时我正在研发一台发电机,而另一个同事正在研发另一台发电机.我们其中一人办理登机手续,另一人办理最新补 现在我们生成的代码存在冲突.因为它生成后它将在下一次运行生成器后正确,但是subversion已将其标记为冲突.到处走动,发现这些冲突,确认它们确实是由于生成的代码,然后手动"接受我的"以清除冲突,这有点痛苦.

有没有办法让subversion认识到对于给定文件夹中的所有文件我只想自动接受我的?我想远离专用批处理文件,因为大多数办公室使用Tortoise SVN,我正在寻找一个每个人都可以使用的解决方案.

svn conflict

9
推荐指数
2
解决办法
2万
查看次数

android:attr风格如何工作?

我正在尝试通过布局构建Android UI.我从以下开始:

<TextView
    android:id="@+id/..."
    android:layout_marginTop="8dip"
    android:text="..."
    style="?android:attr/listSeparatorTextViewStyle"/>
Run Code Online (Sandbox Code Playgroud)

这看起来不错(所有大写字母,较小的字体,下面的分隔栏).现在我想扩展样式,所以我将其更改为以下内容:

<TextView
    android:id="@+id/..."
    android:layout_marginTop="8dip"
    android:text="..."
    style="@style/section_title"/>
Run Code Online (Sandbox Code Playgroud)

具有以下风格:

<style name="section_title" parent="@android:attr/listSeparatorTextViewStyle">
    <item name="android:layout_width">fill_parent</item>
    <item name="android:layout_height">wrap_content</item>
</style>
Run Code Online (Sandbox Code Playgroud)

这不起作用(字体是正确的,但分隔线已经消失).

怎么样......那?

android

8
推荐指数
1
解决办法
2万
查看次数

如何让对等WiFi服务发现工作?

我正在尝试使用两个具有点对点WiFi连接的Android设备构建服务器 - 客户端架构.我在客户端和服务器之间有明确的区别,所以我试图删除不必要的代码.使用http://developer.android.com/training/connect-devices-wirelessly/nsd-wifi-direct.html上的说明我已经......

PeerToPeerService

public class PeerToPeerService {
    private static final Logger LOG = LoggerFactory.getLogger(PeerToPeerService.class);

    private WifiP2pManager mManager;
    private WifiP2pManager.Channel mChannel;
    private final Context mContext;
    private final WifiP2pDnsSdServiceInfo mService;

    public PeerToPeerService(Context context, String name) {
        mContext = context;

        Map<String, String> record = new HashMap<String, String>();
        record.put(Constants.SERVICE_PROPERTY_NAME, name);
        record.put(Constants.SERVICE_PROPERTY_PORT, "12345");

        mService = WifiP2pDnsSdServiceInfo.newInstance(
                "_test", "_presence._tcp", record);
    }

    public void start() {
        mManager = (WifiP2pManager) mContext.getSystemService(Context.WIFI_P2P_SERVICE);
        mChannel = mManager.initialize(mContext, mContext.getMainLooper(), null);

        mManager.addLocalService(mChannel, mService, new ActionListener() {
            @Override
            public void onSuccess() …
Run Code Online (Sandbox Code Playgroud)

android wifi-direct wifip2p

8
推荐指数
1
解决办法
2715
查看次数

Subversion是否支持分支的别名

在subversion中是否有一种方法可以指定特定路径是不同路径的别名,并且能够在条件发生变化时更新该别名?我可以锁定路径以防止它们发生变化吗?

我正在开发一个存储库结构,我想要做的是有以下路径:

  • /versions/1.0 - 上一版本(已锁定)
  • /versions/1.1 - 上一版本(已锁定)
  • /versions/1.1.1 - 当前版本(解锁开发时未锁定)
  • /versions/1.1.2 - 下一次次要发布(未开发用于开发)
  • /versions/1.2 - 下一个主要版本(未开发用于开发)
  • / patch - /versions/1.1.1的别名,Checkins出现在两个地方
  • / subrelease - /versions/1.1.2的别名,Checkins出现在两个地方
  • / trunk - /versions/1.2的别名,Checkins出现在两个地方

目标是保持主干移动以跟上大多数开发人员的工作地点.在我们发布几次并且1.2上线之后,结构将是:

  • /versions/1.0 - 上一版本(已锁定)
  • /versions/1.1 - 上一版本(已锁定)
  • /versions/1.1.1 - 上一版本(已锁定)
  • /versions/1.1.2 - 先前版本(已锁定)
  • /versions/1.2 - 当前版本(解锁开发时未锁定)
  • /versions/1.2.1 - 下一次次要版本(未开发用于开发)
  • /versions/1.3 - 下一个主要版本(未开发用于开发)
  • / patch - /versions/1.2的别名,Checkins出现在两个地方
  • / subrelease - /versions/1.2.1的别名,Checkins出现在两个地方
  • / trunk - /versions/1.3的别名,Checkins出现在两个地方

我知道我可以在自己的机器上执行此操作,但在源代码控制中强制执行此操作会为每个人提供一组共同的措辞.

svn version-control

7
推荐指数
1
解决办法
3791
查看次数

处理WCF反序列化DateTime对象

我们有一个运行的调度应用程序调用WCF服务来运行夜间作业.其中大量包括有关当前营业日期的信息.出于商业原因,调度服务器设置为GMT,但我们的服务在设置为纽约时间的服务器上运行.

这引起了一个问题; 日期将通过显式时区信息传递给我们的.NET服务.因此,当服务告诉应用程序以"2008-11-03 00:00:00 +0:00"的日期运行时,服务会将其解释为"2008-11-02 19:00:00 -5:00" "事情与错误的日期有关.

调度程序行为是第三方和硬编码的,因此我们无法告诉调度程序省略时区偏移.我们不希望总是将日期转换为GMT,因为我们的亚洲办事处很可能会调用相同的服务,我们将回到同样的问题.

有没有办法标记DataContract,甚至控制它在足够低的水平,以确保DateTime种类将是未指定的?或者是否有一种方法使用DateTime来确定用于创建它的原始信息是什么,并在后处理步骤中将其转换回原始值?

如果它有帮助,那么我们现在的合同相当简单.方法采用一个参数,该参数是从下面的类派生的类.

[DataContract]
public class BaseTimeSensitiveParameters
{
    [DataMember] public DateTime? BusinessDate;
}
Run Code Online (Sandbox Code Playgroud)

c# wcf datetime

6
推荐指数
1
解决办法
7112
查看次数

什么是在存储API中定义奇异与多重获取的理想方式?

我的应用程序中有一个内部存储层,用于处理Foo对象.在Get操作期间,数据层对群集获取具有显着的好处,但实际上我只有10%的时间会执行多次获取.以下是我考虑过的各种方法:

方法A:

interface FooStorage {
  Foo getFoo(String name);
  List<Foo> getFoos(List<String> names);
}
Run Code Online (Sandbox Code Playgroud)

方法B:

interface FooStorage {
  List<Foo> getFoos(List<String> names);
}
class StorageUtility {
  public static <T> T firstOrNull(List<T> data) { ... }
}
Run Code Online (Sandbox Code Playgroud)

方法C:

interface FooStorage {
  List<Foo> getFoos(String... names);
}
class StorageUtility {
  public static <T> T firstOrNull(List<T> data) { ... }
}
Run Code Online (Sandbox Code Playgroud)

方法A的缺点是需要支持更大的表面.
方法B的缺点是让消费者在90%的时间不需要时建立一个List.方法C的缺点是10%的时间将列表复制到数组的开销.

有没有规范的正确方法来做到这一点?

java api data-access-layer

6
推荐指数
1
解决办法
224
查看次数