<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>src/Git/Repository/ConfigEntry.cs</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -17,7 +17,6 @@
     &lt;DefineConstants&gt;DEBUG&lt;/DefineConstants&gt;
     &lt;ErrorReport&gt;prompt&lt;/ErrorReport&gt;
     &lt;WarningLevel&gt;4&lt;/WarningLevel&gt;
-    &lt;StartupObject /&gt;
   &lt;/PropertyGroup&gt;
   &lt;PropertyGroup Condition=&quot; '$(Configuration)|$(Platform)' == 'Release|AnyCPU' &quot;&gt;
     &lt;DebugType&gt;none&lt;/DebugType&gt;
@@ -25,7 +24,6 @@
     &lt;OutputPath&gt;bin\Release&lt;/OutputPath&gt;
     &lt;ErrorReport&gt;prompt&lt;/ErrorReport&gt;
     &lt;WarningLevel&gt;4&lt;/WarningLevel&gt;
-    &lt;StartupObject /&gt;
   &lt;/PropertyGroup&gt;
   &lt;ItemGroup&gt;
     &lt;Compile Include=&quot;Blob.cs&quot; /&gt;</diff>
      <filename>src/Git/Core/Core.csproj</filename>
    </modified>
    <modified>
      <diff>@@ -76,23 +76,8 @@ namespace Git.Core
 			Array.Copy (header, 0, this.content, 0, header.Length); // Copying the header first
 			Array.Copy (content, 0, this.content, header.Length, content.Length); // then the data
 			
-			// TODO: remove debugging stuff
-//			Console.WriteLine (&quot;Length: &quot; + this.content.Length);
-//			foreach (char c in this.content) {
-//				if (c == '\n') {
-//					Console.WriteLine (&quot;\\n&quot;);
-//					continue;
-//				}
-//				if (c == '\0')
-//					Console.Write (&quot;[NULL]&quot;);
-//				Console.Write (c);
-//			}
-			
 			// initializing the id with the content
 			id = new SHA1 (this.content, true);
-
-			// TODO: remove debugging stuff
-//			Console.WriteLine (&quot;ID: &quot; + id.ToHexString ());
 		}
 		
 		/// &lt;summary&gt;
@@ -218,7 +203,6 @@ namespace Git.Core
 			// FIXME: I'm getting an error if I don't asign these parameters, this is because
 			// I get out the method before asigned anything to those parameters
 			length = null;
-			//type = Type.Blob;
 			
 			// Here I get out of the method
 			if (!ParseType (input, ref pos, out type))</diff>
      <filename>src/Git/Core/Object.cs</filename>
    </modified>
    <modified>
      <diff>@@ -65,6 +65,7 @@ namespace Git.Core
 		
 		public Revision ()
 		{
+			throw new NotImplementedException ();
 		}
 	}
 }</diff>
      <filename>src/Git/Core/Revision.cs</filename>
    </modified>
    <modified>
      <diff>@@ -36,126 +36,40 @@ namespace Git.Repository
 	/// &lt;/summary&gt;
 	public class Configuration : IConfiguration
 	{
-		private string head;
-		private string description;
-		private string path;
-		private string template_path;
-		private ConfigValue[] values;
+		string head;
+		string description;
+		string path;
+		string template;
+		ConfigEntry[] entries;
 		
-		public string Description
-		{
-			set {
-				description = value;
-			}
-			get {
-				return description;
-			}
-		}
+		public string Head { get; set; }
 		
-		public string Head
-		{
-			set {
-				head = value;
-			}
-			get {
-				return head;
-			}
-		}
+		public string Description { get; set; }
 		
-		public string ConfigPath
-		{
-			set {
-				path = value;
-			}
-			get {
-				return path;
-			}
-		}
+		public string Path { get; set; }
 		
-		public string TemplatePath
-		{
-			set {
-				template_path = value;
-			}
-			get {
-				return template_path;
-			}
-		}
+		public string Template { get; set; }
 		
-		public ConfigValue[] Values
-		{
-			set {
-				values = value;
-			}
+		public ConfigEntry[] Entries {
 			get {
-				return values;
-			}
-		}
-		
-		public Configuration ()
-		{
-		}
-		
-		public void AddConfigValues (string configPath)
-		{
-			path = configPath;
-			AddConfigValues ();
-		}
-		
-		public void AddConfigValues ()
-		{
-			string line = null;
-			string section = null;
-			
-			TextReader tr = new StreamReader (path);
-			
-			while ((line = tr.ReadLine()) != null) {
-				if (line.StartsWith (&quot;[&quot;) &amp;&amp; line.EndsWith (&quot;]&quot;)) {
-					section = line;
-					line = tr.ReadLine ();
-				}
-				
-				// TODO: for now we are going to read the value and name as a whole
-				// the idea is:
-				//
-				// Remove all the text after &quot;=&quot;(and &quot;=&quot; too) that's the name
-				// Remove all the text before &quot;=&quot;(and &quot;=&quot; too) that's the value 
-				ConfigValue configValue = new ConfigValue (section, line, line);
-				
-				AddConfigValue (configValue);
+				return entries;
 			}
-			
-			tr.Close ();
-		}
-		
-		public void AddConfigValue (string configSection, string configName, string configValue)
-		{
-			ConfigValue confValue = new ConfigValue (configSection, configName, configValue);
-			AddConfigValue (confValue);
 		}
 		
-		public void AddConfigValue (ConfigValue val)
+		public Configuration (string head, string description, string path, string template)
 		{
-			if (values == null) {
-				values = new ConfigValue[0];
-				values[0] = val;
-			} else {
-				ConfigValue[] tmp = new ConfigValue[values.Length + 1];
-				
-				for (int i = 0; i &lt; values.Length; i++)
-					tmp[i] = values[i];
-					
-				tmp[tmp.Length - 1] = new ConfigValue();
-				tmp[tmp.Length - 1] = val;
-				values = tmp;
-			}
+			// so if we don't pass null we asign it, if we do pass null or empty then we grab the default
+			this.head = String.IsNullOrEmpty (head) ? GetDefaultHead () : head;
+			this.description = String.IsNullOrEmpty (description) ? GetDefaultDescription () : description;
+			this.path = String.IsNullOrEmpty (path) ? GetDefaultConfigDir () : path;
+			this.template = String.IsNullOrEmpty (template) ? GetDefaultTemplateDir () : template;
 			
-			//ArrayList valuesArray = new ArrayList (values);
+			// doing some validations
+			if (!Directory.Exists (this.path))
+				throw new ArgumentException (String.Format (&quot;The provided path ({0}) of the git config doesn't exist&quot;, this.path));
 			
-			//valuesArray.Add (val);
-			
-			//values = (ConfigValue[]) valuesArray.ToArray ();
-			//values[0] = val;
+			if (!Directory.Exists (this.template))
+				throw new ArgumentException (String.Format (&quot;The provided path ({0}) of the git repo template doesn't exist&quot;, this.template));
 		}
 		
 		// These methods are used to get default configurations from C Git(mostly in UNIX systems)
@@ -179,6 +93,5 @@ namespace Git.Repository
 		{
 			return &quot;Unnamed repository; edit this file to name it for gitweb.&quot;;
 		}
-		
 	}
 }</diff>
      <filename>src/Git/Repository/Configuration.cs</filename>
    </modified>
    <modified>
      <diff>@@ -27,7 +27,7 @@
   &lt;/PropertyGroup&gt;
   &lt;ItemGroup&gt;
     &lt;Compile Include=&quot;Configuration.cs&quot; /&gt;
-    &lt;Compile Include=&quot;ConfigValue.cs&quot; /&gt;
+    &lt;Compile Include=&quot;ConfigEntry.cs&quot; /&gt;
     &lt;Compile Include=&quot;IConfiguration.cs&quot; /&gt;
     &lt;Compile Include=&quot;Ref.cs&quot; /&gt;
     &lt;Compile Include=&quot;Repo.cs&quot; /&gt;</diff>
      <filename>src/Git/Repository/Repository.csproj</filename>
    </modified>
    <modified>
      <diff>@@ -35,7 +35,7 @@
     &lt;Compile Include=&quot;TestDiff.cs&quot; /&gt;
   &lt;/ItemGroup&gt;
   &lt;ItemGroup&gt;
-    &lt;Folder Include=&quot;res/&quot; /&gt;
+    &lt;Folder Include=&quot;res\&quot; /&gt;
   &lt;/ItemGroup&gt;
   &lt;ItemGroup&gt;
     &lt;None Include=&quot;res\config&quot;&gt;</diff>
      <filename>tests/Git/Tests/Tests.csproj</filename>
    </modified>
  </modified>
  <removed type="array">
    <removed>
      <filename>src/Git/Repository/ConfigValue.cs</filename>
    </removed>
  </removed>
  <parents type="array">
    <parent>
      <id>1d28e7dee92af99866997c45c648686fdeaba84d</id>
    </parent>
  </parents>
  <author>
    <name>Igor Guerrero Fonseca</name>
    <email>igfgt1@gmail.com</email>
  </author>
  <url>http://github.com/igorgue/git-sharp/commit/a08e80005e0335fceb470a8d5982b5456b82037d</url>
  <id>a08e80005e0335fceb470a8d5982b5456b82037d</id>
  <committed-date>2009-04-17T22:05:20-07:00</committed-date>
  <authored-date>2009-04-17T22:05:20-07:00</authored-date>
  <message>did some work on the config handler</message>
  <tree>306eec6751058162280d8404649d437825d18d37</tree>
  <committer>
    <name>Igor Guerrero Fonseca</name>
    <email>igfgt1@gmail.com</email>
  </committer>
</commit>
