我一直在研究从开发线检出的代码,发现所做的更改可能会破坏更改,需要在提交到主开发树之前移动到实验分支.但是,我没有检查实验分支,我不想丢失已经进行的更改.
有没有办法将工作文件夹中的更改提交到与最初检出的分支不同的分支?
我喜欢Subversion设置的方式之一就是我可以拥有一个包含多个项目的主存储库.当我想在一个项目上工作时,我可以查看该项目.像这样
\main
\ProductA
\ProductB
\Shared
Run Code Online (Sandbox Code Playgroud)
然后
svn checkout http://.../main/ProductA
Run Code Online (Sandbox Code Playgroud)
作为git的新用户,我想在提交特定工作流程之前探索该领域的一些最佳实践.从我到目前为止所读到的,git将所有内容存储在项目树根目录下的单个.git文件夹中.所以我可以做两件事之一.
产品之间存在依赖关系,因此单个大型项目似乎是合适的.我们将使用一个服务器,所有开发人员都可以共享他们的代码.我已经通过SSH和HTTP工作了这部分我喜欢的部分.但是,SVN中的存储库已经有很多GB的大小,因此在每台机器上拖动整个存储库似乎是一个坏主意 - 特别是因为我们需要承担过多的网络带宽.
我想,Linux内核项目存储库同样大,所以必须有一个正确的方法来处理这个用Git,但我还没想到它.
是否有使用非常大的多项目存储库的指南或最佳实践?
在我学习MVVM的过程中,我已经建立了对WPF和ViewModel模式的一些基本理解.我在提供列表时使用以下抽象,并且对单个选定项目感兴趣.
public ObservableCollection<OrderViewModel> Orders { get; private set; }
public ICollectionView OrdersView
{
get
{
if( _ordersView == null )
_ordersView = CollectionViewSource.GetDefaultView( Orders );
return _ordersView;
}
}
private ICollectionView _ordersView;
public OrderViewModel CurrentOrder
{
get { return OrdersView.CurrentItem as OrderViewModel; }
set { OrdersView.MoveCurrentTo( value ); }
}
Run Code Online (Sandbox Code Playgroud)
然后,我可以将OrdersView与支持排序和过滤绑定到WPF中的列表:
<ListView ItemsSource="{Binding Path=OrdersView}"
IsSynchronizedWithCurrentItem="True">
Run Code Online (Sandbox Code Playgroud)
这对单选视图非常有效.但我还想支持视图中的多个选择,并让模型绑定到所选项的列表.
如何将ListView.SelectedItems绑定到ViewModel上的backer属性?
我有一个WPF窗口SizeToContent="Height".此窗口包含<Expander />显示最近活动列表的窗口.我想要的是当扩展器扩展时,窗口的大小按比例增长.隐藏时,窗口会再次按比例调整大小.如果窗口调整大小,扩展器和它包含的列表视图应该增长到使用新空间.(不要介意那里的颜色来帮助我解决这个问题):
普通视图
alt text http://www.deploylx.com/so/wpfexpander/Open.png
倒塌
alt text http://www.deploylx.com/so/wpfexpander/Closed.png
调整到新的空间
替代文字http://www.deploylx.com/so/wpfexpander/Expanded.png
到目前为止,这很有效.<Expander />调整窗口大小后折叠时出现问题.而不是窗口再次折叠,列表视图只是隐藏:
调整大小后折叠
替代文字http://www.deploylx.com/so/wpfexpander/Collapsed.png
我的直觉告诉我,Height当窗口调整大小并因此覆盖SizeToContent属性时窗口的设置正在被设置.那么,在调整大小后,如何让窗口保持内容行为的大小?
目前的XAML:
<Window x:Class="DeployLX.Licensing.Nlm.Admin.v3.DashboardWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Dashboard" Width="504" SizeToContent="Height" Height="275">
<DockPanel>
<Menu DockPanel.Dock="Top">
<MenuItem Header="_File">
<MenuItem Header="E_xit" Command="{Binding Path=CloseCmd}" />
</MenuItem>
</Menu>
<Grid DockPanel.Dock="Top" Margin="8" ShowGridLines="True">
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Grid Grid.RowSpan="2" Grid.Row="0" Grid.Column="0" Margin="0,0,8,0">
<Rectangle Fill="Red" />
<TextBlock>ActiveCount</TextBlock>
</Grid>
<Grid Grid.Row="0" Grid.Column="1" Margin="0,0,0,4">
<Rectangle Fill="Green" …Run Code Online (Sandbox Code Playgroud) 使用form_for帮助程序和text_field调用时,Ruby on Rails将<input />为其输出的元素生成唯一的id .如何生成相同的ID以便以后包含在以后生成的JavaScript中?
<%= form_for @user do |f| %>
<%= f.text_field :username %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
然后在页面中:
<%= javascript_tag do %>
$('<%= id of the :username field %>').doSomethingReallyCool();
<% end %>
Run Code Online (Sandbox Code Playgroud) 我是第一次尝试使用MVVM,而且非常喜欢责任分离.当然,任何设计模式只能解决许多问题 - 不是全部.所以我试图找出存储应用程序状态的位置以及存储应用程序范围命令的位置.
让我们说我的应用程序连接到一个特定的URL.我有一个ConnectionWindow和一个ConnectionViewModel,它支持从用户收集这些信息并调用连接到该地址的命令.下次应用程序启动时,我想重新连接到同一地址而不提示用户.
到目前为止,我的解决方案是创建一个ApplicationViewModel,它提供连接到特定地址的命令,并将该地址保存到某个持久存储(实际保存的地方与此问题无关).下面是一个缩写的类模型.
应用程序视图模型:
public class ApplicationViewModel : INotifyPropertyChanged
{
public Uri Address{ get; set; }
public void ConnectTo( Uri address )
{
// Connect to the address
// Save the addres in persistent storage for later re-use
Address = address;
}
...
}
Run Code Online (Sandbox Code Playgroud)
连接视图模型:
public class ConnectionViewModel : INotifyPropertyChanged
{
private ApplicationViewModel _appModel;
public ConnectionViewModel( ApplicationViewModel model )
{
_appModel = model;
}
public ICommand ConnectCmd
{
get
{
if( _connectCmd == null )
{
_connectCmd = …Run Code Online (Sandbox Code Playgroud) 我有一个WCF服务,通过如下结构传递状态更新:
[DataContract]
public struct StatusInfo
{
[DataMember] public int Total;
[DataMember] public string Authority;
}
...
public StatusInfo GetStatus() { ... }
Run Code Online (Sandbox Code Playgroud)
我在ViewModel中公开了一个属性,如下所示:
public class ServiceViewModel : ViewModel
{
public StatusInfo CurrentStatus
{
get{ return _currentStatus; }
set
{
_currentStatus = value;
OnPropertyChanged( () => CurrentStatus );
}
}
}
Run Code Online (Sandbox Code Playgroud)
和XAML一样:
<TextBox Text="{Binding CurrentStatus.Total}" />
Run Code Online (Sandbox Code Playgroud)
当我运行应用程序时,我在输出窗口中看到错误,指示无法找到Total属性.我检查并仔细检查,我输入正确.我突然意识到错误明确表明找不到"财产".因此,向结构添加属性使其工作得很好.但这对我来说似乎很奇怪,WPF无法处理对字段的单向绑定.从语法上讲,您在代码中访问它们是相同的,并且仅为StatusInfo结构创建自定义视图模型似乎很愚蠢.我错过了WPF绑定的一些内容吗?你能绑定到一个字段还是属性绑定唯一的方法?
我知道这是一个简单的概念,但我正在努力使用字体指标.水平居中并不太难,但垂直方向看起来有点困难.
我尝试过各种组合使用FontMetrics getAscent,getLeading,getXXXX方法,但无论我尝试过什么,文本总是偏离几个像素.有没有办法测量文本的确切高度,使其完全居中.
我正在为Bootstrap 3寻找一个所见即所得的textarea编辑器.我在Google上找到的所有东西都只适用于Bootstrap 2.有没有人为Bootstrap 3提供一个好的,简单的所见即所得的Edtor?
我从.NET的角度知道,版本为1.13的程序集被认为是比版本1.2更新的版本,因为版本中的每个数字都是单独计算的.然而,从数值的角度来看,1.13 <1.2.
问题归结为为客户发布更新时的可读性.从.0到.9它们都是一样的,但是在.10你必须区分.那么,你是否将点数发布的数量限制为9,然后在达到.9时增加主要版本?
请不要认为最终用户了解典型的开发版本编号方案.
更新:
不要把它想象成十进制数.(.)是不同字段之间的分隔符.每个字段的含义(例如):
Run Code Online (Sandbox Code Playgroud)MajorRelease.MinorRelease.BuildNumber
绝对!当我查看版本号时,我看到了它.但这不是你的普通乔读取文字"1.13"的方式.我想作为程序员,很容易将我们的理解投射到我们的用户身上.这就是为什么我对数字混淆经验的回应感兴趣.这可能不是一个真正的问题,或者它可能只是被忽略了.
更新2:响应"提供文档"或"向用户解释"类型的解决方案:它们不起作用!:)如果你必须向用户解释版本号,你已经使它变得比它需要的更复杂.虽然一项技术的主要受众可能是许多公司的开发人员,但软件的实际采购和管理由没有开发或技术背景的秘书和文职人员处理.如果他们的经理问他们"是否有可用的新版本1.9"并且他们看到"1.11"他们可能不会将其注册为新版本.
.net ×5
wpf ×3
c# ×2
mvvm ×2
android ×1
assemblies ×1
binding ×1
branch ×1
css ×1
data-binding ×1
field ×1
forms ×1
git ×1
graphics ×1
html ×1
html5 ×1
java ×1
javascript ×1
svn ×1
unit-testing ×1
versioning ×1